The patch ("btrfs: start transaction in btrfs_ioctl_setflags()") used
btrfs_set_prop() instead of btrfs_set_prop_trans() by which now the
inode::i_flags update functions such as
btrfs_sync_inode_flags_to_i_flags() and btrfs_update_inode() is called
in btrfs_ioctl_setflags() instead of
btrfs_set_prop_trans()->btrfs_setxattr() as earlier. So the
inode::i_flags remains unmodified until the thread has checked all the
conditions. So drop the saved inode::i_flags in out_i_flags.
Signed-off-by: Anand Jain <anand.jain@oracle.com>
Reviewed-by: David Sterba <dsterba@suse.com>
Signed-off-by: David Sterba <dsterba@suse.com>
        unsigned int fsflags, old_fsflags;
        int ret;
        u64 old_flags;
-       unsigned int old_i_flags;
        umode_t mode;
        const char *comp = NULL;
 
        inode_lock(inode);
 
        old_flags = binode->flags;
-       old_i_flags = inode->i_flags;
        mode = inode->i_mode;
 
        fsflags = btrfs_mask_fsflags_for_type(inode, fsflags);
  out_drop:
        if (ret) {
                binode->flags = old_flags;
-               inode->i_flags = old_i_flags;
        }
 
  out_unlock: