-int ext2_setattr_flags(struct inode *inode, unsigned int flags)
-{
- unsigned int oldflags, newflags;
-
- oldflags = EXT2_I(inode)->i_flags;
- newflags = oldflags &
- ~(EXT2_IMMUTABLE_FL | EXT2_IUNLINK_FL | EXT2_BARRIER_FL);
- if (flags & ATTR_FLAG_IMMUTABLE)
- newflags |= EXT2_IMMUTABLE_FL;
- if (flags & ATTR_FLAG_IUNLINK)
- newflags |= EXT2_IUNLINK_FL;
- if (flags & ATTR_FLAG_BARRIER)
- newflags |= EXT2_BARRIER_FL;
-
- if (oldflags ^ newflags) {
- EXT2_I(inode)->i_flags = newflags;
- inode->i_ctime = CURRENT_TIME;
- }
- return 0;
-}
-