]> git.baikalelectronics.ru Git - kernel.git/commit
block: disable the elevator int del_gendisk
authorChristoph Hellwig <hch@lst.de>
Tue, 14 Jun 2022 07:48:24 +0000 (09:48 +0200)
committerJens Axboe <axboe@kernel.dk>
Fri, 17 Jun 2022 13:31:05 +0000 (07:31 -0600)
commit85ec4e33544542af4a7642f60f9fd2d147653888
treec71b4e1bf63b621b1dba9a1e5b740b31f41d0552
parentf0fbe11f72ed67511ee981901f1e66bd83b268f1
block: disable the elevator int del_gendisk

The elevator is only used for file system requests, which are stopped in
del_gendisk.  Move disabling the elevator and freeing the scheduler tags
to the end of del_gendisk instead of doing that work in disk_release and
blk_cleanup_queue to avoid a use after free on q->tag_set from
disk_release as the tag_set might not be alive at that point.

Move the blk_qos_exit call as well, as it just depends on the elevator
exit and would be the only reason to keep the not exactly cheap queue
freeze in disk_release.

Fixes: dcd40bdbaf7c ("blk-mq: Use shared tags for shared sbitmap support")
Reported-by: syzbot+3e3f419f4a7816471838@syzkaller.appspotmail.com
Signed-off-by: Christoph Hellwig <hch@lst.de>
Tested-by: syzbot+3e3f419f4a7816471838@syzkaller.appspotmail.com
Link: https://lore.kernel.org/r/20220614074827.458955-2-hch@lst.de
Signed-off-by: Jens Axboe <axboe@kernel.dk>
block/blk-core.c
block/genhd.c