According to commit 5f16f3225b06

("ext4: atomically set inode->i_flags in ext4_set_inode_flags()")

Cc: "Theodore Ts'o" <[email protected]>
Cc: Andrew Morton <[email protected]>
Signed-off-by: Fabian Frederick <[email protected]>
---
 fs/hfsplus/ioctl.c | 12 +++++-------
 1 file changed, 5 insertions(+), 7 deletions(-)

diff --git a/fs/hfsplus/ioctl.c b/fs/hfsplus/ioctl.c
index d3ff5cc..8e98f5d 100644
--- a/fs/hfsplus/ioctl.c
+++ b/fs/hfsplus/ioctl.c
@@ -76,7 +76,7 @@ static int hfsplus_ioctl_setflags(struct file *file, int 
__user *user_flags)
 {
        struct inode *inode = file_inode(file);
        struct hfsplus_inode_info *hip = HFSPLUS_I(inode);
-       unsigned int flags;
+       unsigned int flags, new_fl = 0;
        int err = 0;
 
        err = mnt_want_write_file(file);
@@ -110,14 +110,12 @@ static int hfsplus_ioctl_setflags(struct file *file, int 
__user *user_flags)
        }
 
        if (flags & FS_IMMUTABLE_FL)
-               inode->i_flags |= S_IMMUTABLE;
-       else
-               inode->i_flags &= ~S_IMMUTABLE;
+               new_fl |= S_IMMUTABLE;
 
        if (flags & FS_APPEND_FL)
-               inode->i_flags |= S_APPEND;
-       else
-               inode->i_flags &= ~S_APPEND;
+               new_fl |= S_APPEND;
+
+       inode_set_flags(inode, new_fl, S_IMMUTABLE | S_APPEND);
 
        if (flags & FS_NODUMP_FL)
                hip->userflags |= HFSPLUS_FLG_NODUMP;
-- 
1.9.1

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to [email protected]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

Reply via email to