aboutsummaryrefslogtreecommitdiffstats
path: root/fs/btrfs/dev-replace.c
diff options
context:
space:
mode:
authorMing Lei <[email protected]>2021-10-14 08:17:10 +0000
committerJens Axboe <[email protected]>2021-10-20 00:27:58 +0000
commite70feb8b3e6886c525c88943b5f1508d02f5a683 (patch)
treeb0bb0d783c033f32f32145e993a163477b651f4f /fs/btrfs/dev-replace.c
parentnvme: loop: clear NVME_CTRL_ADMIN_Q_STOPPED after admin queue is reallocated (diff)
downloadkernel-e70feb8b3e6886c525c88943b5f1508d02f5a683.tar.gz
kernel-e70feb8b3e6886c525c88943b5f1508d02f5a683.zip
blk-mq: support concurrent queue quiesce/unquiesce
blk_mq_quiesce_queue() has been used a bit wide now, so far we don't support concurrent/nested quiesce. One biggest issue is that unquiesce can happen unexpectedly in case that quiesce/unquiesce are run concurrently from more than one context. This patch introduces q->mq_quiesce_depth to deal concurrent quiesce, and we only unquiesce queue when it is the last/outer-most one of all contexts. Several kernel panic issue has been reported[1][2][3] when running stress quiesce test. And this patch has been verified in these reports. [1] https://lore.kernel.org/linux-block/[email protected]/T/#m1fc52431fad7f33b1ffc3f12c4450e4238540787 [2] https://lore.kernel.org/linux-block/[email protected]/T/#m10ad90afeb9c8cc318334190a7c24c8b5c5e0722 [3] https://listman.redhat.com/archives/dm-devel/2021-September/msg00189.html Signed-off-by: Ming Lei <[email protected]> Reviewed-by: Christoph Hellwig <[email protected]> Link: https://lore.kernel.org/r/[email protected] Signed-off-by: Jens Axboe <[email protected]>
Diffstat (limited to 'fs/btrfs/dev-replace.c')
0 files changed, 0 insertions, 0 deletions