]> rtime.felk.cvut.cz Git - linux-imx.git/commitdiff
Btrfs: don't wait on ordered extents if we have a trans open
authorJosef Bacik <jbacik@fusionio.com>
Thu, 4 Apr 2013 15:55:49 +0000 (11:55 -0400)
committerJosef Bacik <jbacik@fusionio.com>
Mon, 6 May 2013 19:54:32 +0000 (15:54 -0400)
Dave was hitting a lockdep warning because we're now properly taking the ordered
operations mutex in the ordered wait stuff.  This is because some cases we will
have a trans handle when we are flushing delalloc space, but we can't wait on
ordered extents because we could potentially deadlock, so fix this by not doing
the wait if we have a trans handle.  Thanks

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

index cba98c1bcc0c11eff0fad32a7cf5a9fc3ac7c810..bea20feed2ab016340d841d43fc8f7f3b3597c4b 100644 (file)
@@ -3920,7 +3920,8 @@ void btrfs_writeback_inodes_sb_nr(struct btrfs_root *root,
                 * the disk).
                 */
                btrfs_start_delalloc_inodes(root, 0);
-               btrfs_wait_ordered_extents(root, 0);
+               if (!current->journal_info)
+                       btrfs_wait_ordered_extents(root, 0);
        }
 }