rbd just calls blk_mq_freeze_queue() only, and doesn't unfreeze queue in current context, so convert to blk_mq_freeze_queue_non_owner(). Cc: Ilya Dryomov <idryomov@xxxxxxxxx> Signed-off-by: Ming Lei <ming.lei@xxxxxxxxxx> --- drivers/block/rbd.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/drivers/block/rbd.c b/drivers/block/rbd.c index 9c8b19a22c2a..63c183ecdad9 100644 --- a/drivers/block/rbd.c +++ b/drivers/block/rbd.c @@ -7282,7 +7282,7 @@ static ssize_t do_rbd_remove(const char *buf, size_t count) * Prevent new IO from being queued and wait for existing * IO to complete/fail. */ - blk_mq_freeze_queue(rbd_dev->disk->queue); + blk_mq_freeze_queue_non_owner(rbd_dev->disk->queue); blk_mark_disk_dead(rbd_dev->disk); } -- 2.47.0