Btrfs: do delay iput in sync_fs
authorJosef Bacik <jbacik@fusionio.com>
Thu, 16 May 2013 15:14:33 +0000 (11:14 -0400)
committerJosef Bacik <jbacik@fusionio.com>
Fri, 14 Jun 2013 15:29:52 +0000 (11:29 -0400)
We get lock inversion with umount if we allow iputs from sync_fs, so use the
delay iput flag to keep this from happening.  Thanks,

Reported-by: David Sterba <dsterba@suse.cz>
Signed-off-by: Josef Bacik <jbacik@fusionio.com>
fs/btrfs/super.c

index 41d81bee583dae436a8b5c70cc761685d79290ee..14d2be03f95a1c191b03cf017f6e8b42c0feaef1 100644 (file)
@@ -862,7 +862,7 @@ int btrfs_sync_fs(struct super_block *sb, int wait)
                return 0;
        }
 
-       btrfs_wait_all_ordered_extents(fs_info, 0);
+       btrfs_wait_all_ordered_extents(fs_info, 1);
 
        trans = btrfs_attach_transaction_barrier(root);
        if (IS_ERR(trans)) {