]> www.infradead.org Git - nvme.git/commit
block: retry call probe after request_module in blk_request_module
authorYang Erkun <yangerkun@huawei.com>
Mon, 9 Dec 2024 11:04:35 +0000 (19:04 +0800)
committerJens Axboe <axboe@kernel.dk>
Fri, 3 Jan 2025 18:43:50 +0000 (11:43 -0700)
commit457ef47c08d2979f3e59ce66267485c3faed70c8
tree1d5a3acdaf7c2133a8cc8e66aa88d6ee0cc3c895
parent00aab2f236f25f3dc3c88eee1b8ccb0cbcae3f99
block: retry call probe after request_module in blk_request_module

Set kernel config:

 CONFIG_BLK_DEV_LOOP=m
 CONFIG_BLK_DEV_LOOP_MIN_COUNT=0

Do latter:

 mknod loop0 b 7 0
 exec 4<> loop0

Before commit e418de3abcda ("block: switch gendisk lookup to a simple
xarray"), lookup_gendisk will first use base_probe to load module loop,
and then the retry will call loop_probe to prepare the loop disk. Finally
open for this disk will success. However, after this commit, we lose the
retry logic, and open will fail with ENXIO. Block device autoloading is
deprecated and will be removed soon, but maybe we should keep open success
until we really remove it. So, give a retry to fix it.

Fixes: e418de3abcda ("block: switch gendisk lookup to a simple xarray")
Suggested-by: Christoph Hellwig <hch@lst.de>
Signed-off-by: Yang Erkun <yangerkun@huawei.com>
Reviewed-by: Christoph Hellwig <hch@lst.de>
Link: https://lore.kernel.org/r/20241209110435.3670985-1-yangerkun@huaweicloud.com
Signed-off-by: Jens Axboe <axboe@kernel.dk>
block/genhd.c