]> git.baikalelectronics.ru Git - kernel.git/commit
Btrfs: stop all workers after we free block groups
authorJosef Bacik <jbacik@fusionio.com>
Wed, 16 Oct 2013 17:53:28 +0000 (13:53 -0400)
committerChris Mason <chris.mason@fusionio.com>
Tue, 12 Nov 2013 02:57:49 +0000 (21:57 -0500)
commit0a42e14f37aeb5a0c27d0a449434503de11b1afd
treea98cef8c48e407bb20e8166eb2bc3453a3a2d8bd
parent325ea5017bf2aad96dc14d187f729f0608d18c47
Btrfs: stop all workers after we free block groups

Stefan was hitting a panic in the async worker stuff because we had outstanding
read bios while we were stopping the worker threads.  You could reproduce this
easily if you mount -o nospace_cache and ran generic/273.  This is because the
caching thread stuff is still going and we were stopping all the worker threads.
We need to stop the workers after this work is done, and the free block groups
code will wait for all the caching threads to stop first so we don't run into
this problem.  With this patch we no longer panic.  Thanks,

Cc: stable@vger.kernel.org
Reported-by: Stefan Behrens <sbehrens@giantdisaster.de>
Signed-off-by: Josef Bacik <jbacik@fusionio.com>
Signed-off-by: Chris Mason <chris.mason@fusionio.com>
fs/btrfs/disk-io.c