Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux
1
fork

Configure Feed

Select the types of activity you want to include in your feed.

block: don't quiesce queue for calling elevator_set_none()

blk_mq_freeze_queue() can't be called on quiesced queue, otherwise it may
never return if there is any queued requests.

Fix it by removing quiesce queue around elevator_set_none() because
elevator_switch() does quiesce queue in case that we need to switch
to none really.

Fixes: 1e44bedbc921 ("block: unifying elevator change")
Signed-off-by: Ming Lei <ming.lei@redhat.com>
Reviewed-by: Christoph Hellwig <hch@lst.de>
Reviewed-by: Nilay Shroff <nilay@linux.ibm.com>
Link: https://lore.kernel.org/r/20250508085807.3175112-2-ming.lei@redhat.com
Signed-off-by: Jens Axboe <axboe@kernel.dk>

authored by

Ming Lei and committed by
Jens Axboe
8336d18c 037af793

+1 -4
+1 -4
block/blk-sysfs.c
··· 948 948 blk_mq_sysfs_unregister(disk); 949 949 blk_crypto_sysfs_unregister(disk); 950 950 951 - if (queue_is_mq(q)) { 952 - blk_mq_quiesce_queue(q); 951 + if (queue_is_mq(q)) 953 952 elevator_set_none(q); 954 - blk_mq_unquiesce_queue(q); 955 - } 956 953 957 954 mutex_lock(&q->sysfs_lock); 958 955 disk_unregister_independent_access_ranges(disk);