btrfs: don't double lock the subvol_sem for rename exchange
authorJosef Bacik <josef@toxicpanda.com>
Tue, 19 Nov 2019 18:59:20 +0000 (13:59 -0500)
committerDavid Sterba <dsterba@suse.com>
Fri, 13 Dec 2019 13:09:23 +0000 (14:09 +0100)
commit943eb3bf25f4a7b745dd799e031be276aa104d82
treea649d2de74efae956436897461ba66cbf0ed3557
parentdb8fe64f9ce61d1d89d3c3c34d111a43afb9f053
btrfs: don't double lock the subvol_sem for rename exchange

If we're rename exchanging two subvols we'll try to lock this lock
twice, which is bad.  Just lock once if either of the ino's are subvols.

Fixes: cdd1fedf8261 ("btrfs: add support for RENAME_EXCHANGE and RENAME_WHITEOUT")
CC: stable@vger.kernel.org # 4.4+
Signed-off-by: Josef Bacik <josef@toxicpanda.com>
Reviewed-by: David Sterba <dsterba@suse.com>
Signed-off-by: David Sterba <dsterba@suse.com>
fs/btrfs/inode.c