[PATCH v2] nvme-multipath: revalidate zones for namespace heads
Bart Van Assche
bvanassche at acm.org
Mon Sep 28 13:42:38 PDT 2026
On 6/9/26 8:28 PM, Yao Sang wrote:
> set_capacity_and_notify(ns->head->disk, get_capacity(ns->disk));
> set_disk_ro(ns->head->disk, nvme_ns_is_readonly(ns, info));
> nvme_mpath_revalidate_paths(ns->head);
> + ret = nvme_mpath_revalidate_zones(ns->head);
>
> +unfreeze_head_queue:
> blk_mq_unfreeze_queue(ns->head->disk->queue, memflags);
Does the above nvme_mpath_revalidate_zones() submit I/O while the
request queue is frozen? If so, is this guaranteed to trigger a
deadlock? I'm wondering whether the above changes are the changes that
introduced this syzbot report:
https://lore.kernel.org/linux-block/6ab26c90.c68e76dc.23da29.00ab.GAE@google.com/
From that report:
-> #2 (&q->limits_lock){+.+.}-{4:4}:
__mutex_lock_common kernel/locking/mutex.c:646 [inline]
__mutex_lock+0x197/0x15a0 kernel/locking/mutex.c:821
queue_limits_start_update include/linux/blkdev.h:1101 [inline]
disk_update_zone_resources block/blk-zoned.c:2067 [inline]
blk_revalidate_disk_zones+0xad9/0x12e0 block/blk-zoned.c:2375
nvme_mpath_revalidate_zones+0x106/0x1c0
drivers/nvme/host/multipath.c:301
nvme_update_ns_info+0x984/0x1200 drivers/nvme/host/core.c:2622
nvme_alloc_ns drivers/nvme/host/core.c:4284 [inline]
nvme_scan_ns+0x2563/0x3640 drivers/nvme/host/core.c:4471
async_run_entry_fn+0x9d/0x430 kernel/async.c:129
process_one_work kernel/workqueue.c:3399 [inline]
process_scheduled_works+0xc3d/0x1630 kernel/workqueue.c:3482
worker_thread+0xa47/0xfb0 kernel/workqueue.c:3563
kthread+0x38b/0x480 kernel/kthread.c:436
ret_from_fork+0x514/0xb70 arch/x86/kernel/process.c:158
ret_from_fork_asm+0x1a/0x30 arch/x86/entry/entry_64.S:245
Thanks,
Bart.
More information about the Linux-nvme
mailing list