Btrfs: do not pin while under spin lock
authorJosef Bacik <jbacik@fusionio.com>
Mon, 3 Jun 2013 20:42:36 +0000 (16:42 -0400)
committerJosef Bacik <jbacik@fusionio.com>
Fri, 14 Jun 2013 15:30:13 +0000 (11:30 -0400)
commite78417d1921c538ea195537c7bea1b31a6a55961
treee588950c7b2af3d686fdc7fb34dc704e4e66c170
parenta5959bc0a1920d54c07b26a67b104caaf28f0a8c
Btrfs: do not pin while under spin lock

When testing a corrupted fs I noticed I was getting sleep while atomic errors
when the transaction aborted.  This is because btrfs_pin_extent may need to
allocate memory and we are calling this under the spin lock.  Fix this by moving
it out and doing the pin after dropping the spin lock but before dropping the
mutex, the same way it works when delayed refs run normally.  Thanks,

Signed-off-by: Josef Bacik <jbacik@fusionio.com>
fs/btrfs/disk-io.c