]> git.baikalelectronics.ru Git - kernel.git/commit
block: drain queue after disk is removed from sysfs
authorMing Lei <ming.lei@redhat.com>
Tue, 26 Oct 2021 10:12:04 +0000 (18:12 +0800)
committerJens Axboe <axboe@kernel.dk>
Tue, 26 Oct 2021 14:44:38 +0000 (08:44 -0600)
commit912610fce0b168d5271b0fa542bc2b6eed2cd2e9
tree3e71ce1f41bdffe3358d4da83d056426a15585de
parentaec54ba5b8176798fe45ef526243cfe12d8f99cf
block: drain queue after disk is removed from sysfs

Before removing disk from sysfs, userspace still may change queue via
sysfs, such as switching elevator or setting wbt latency, both may
reinitialize wbt, then the warning in blk_free_queue_stats() will be
triggered since rq_qos_exit() is moved to del_gendisk().

Fixes the issue by moving draining queue & tearing down after disk is
removed from sysfs, at that time no one can come into queue's
store()/show().

Reported-by: Yi Zhang <yi.zhang@redhat.com>
Tested-by: Yi Zhang <yi.zhang@redhat.com>
Fixes: b44b1c0ab7ff ("block: drain file system I/O on del_gendisk")
Signed-off-by: Ming Lei <ming.lei@redhat.com>
Link: https://lore.kernel.org/r/20211026101204.2897166-1-ming.lei@redhat.com
Signed-off-by: Jens Axboe <axboe@kernel.dk>
block/genhd.c