OSDN Git Service

btrfs: fix deadlock when writing out space cache
authorJosef Bacik <jbacik@fb.com>
Wed, 15 Nov 2017 21:20:52 +0000 (16:20 -0500)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Sat, 3 Feb 2018 16:05:37 +0000 (17:05 +0100)
commit8cfb3965ebcd9e02365f8c8e9f4c9f19fd0be004
tree05346c774dca386fba9c10848b6c218b4ca1d14a
parent030d4676a2681a0656c205a9e58b9624a74a16f4
btrfs: fix deadlock when writing out space cache

[ Upstream commit b77000ed558daa3bef0899d29bf171b8c9b5e6a8 ]

If we fail to prepare our pages for whatever reason (out of memory in
our case) we need to make sure to drop the block_group->data_rwsem,
otherwise hilarity ensues.

Signed-off-by: Josef Bacik <jbacik@fb.com>
Reviewed-by: Omar Sandoval <osandov@fb.com>
Reviewed-by: Liu Bo <bo.li.liu@oracle.com>
Reviewed-by: David Sterba <dsterba@suse.com>
[ add label and use existing unlocking code ]
Signed-off-by: David Sterba <dsterba@suse.com>
Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
fs/btrfs/free-space-cache.c