Btrfs: move d_instantiate outside the transaction during mksubvol
authorChris Mason <chris.mason@fusionio.com>
Wed, 6 Feb 2013 17:06:02 +0000 (12:06 -0500)
committerChris Mason <chris.mason@fusionio.com>
Wed, 6 Feb 2013 17:11:10 +0000 (12:11 -0500)
commit1a65e24b0bb7dde48cac4a2bf74d5558f9e32ba7
treebda896534a46bf159e725379236509e2def0e52a
parenteb6b88d92c6df083dd09a8c471011e3788dfd7c6
Btrfs: move d_instantiate outside the transaction during mksubvol

Dave Sterba triggered a lockdep complaint about lock ordering
between the sb_internal lock and the cleaner semaphore.

btrfs_lookup_dentry() checks for orphans if we're looking up
the inode for a subvolume, and subvolume creation is triggering
the lookup with a transaction running.

This commit moves the d_instantiate after the transaction closes.

Signed-off-by: Chris Mason <chris.mason@fusionio.com>
fs/btrfs/ioctl.c