]> git.ipfire.org Git - thirdparty/kernel/stable.git/commitdiff
nvme-multipath: fix lockdep WARN due to partition scan work
authorShin'ichiro Kawasaki <shinichiro.kawasaki@wdc.com>
Mon, 17 Nov 2025 02:23:39 +0000 (11:23 +0900)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Sat, 6 Dec 2025 21:12:39 +0000 (06:12 +0900)
[ Upstream commit 6d87cd5335784351280f82c47cc8a657271929c3 ]

Blktests test cases nvme/014, 057 and 058 fail occasionally due to a
lockdep WARN. As reported in the Closes tag URL, the WARN indicates that
a deadlock can happen due to the dependency among disk->open_mutex,
kblockd workqueue completion and partition_scan_work completion.

To avoid the lockdep WARN and the potential deadlock, cut the dependency
by running the partition_scan_work not by kblockd workqueue but by
nvme_wq.

Reported-by: Yi Zhang <yi.zhang@redhat.com>
Closes: https://lore.kernel.org/linux-block/CAHj4cs8mJ+R_GmQm9R8ebResKAWUE8kF5+_WVg0v8zndmqd6BQ@mail.gmail.com/
Link: https://lore.kernel.org/linux-block/oeyzci6ffshpukpfqgztsdeke5ost5hzsuz4rrsjfmvpqcevax@5nhnwbkzbrpa/
Fixes: 1f021341eef4 ("nvme-multipath: defer partition scanning")
Signed-off-by: Shin'ichiro Kawasaki <shinichiro.kawasaki@wdc.com>
Reviewed-by: Christoph Hellwig <hch@lst.de>
Reviewed-by: Hannes Reinecke <hare@suse.de>
Signed-off-by: Keith Busch <kbusch@kernel.org>
Signed-off-by: Sasha Levin <sashal@kernel.org>
drivers/nvme/host/multipath.c

index 43b89c7d585f0b1eeb1f7eecf82bb1c2678ea8d0..a3e225bb4b88f196b9f7f0261ed14ba10509e375 100644 (file)
@@ -577,7 +577,7 @@ static void nvme_mpath_set_live(struct nvme_ns *ns)
                        return;
                }
                nvme_add_ns_head_cdev(head);
-               kblockd_schedule_work(&head->partition_scan_work);
+               queue_work(nvme_wq, &head->partition_scan_work);
        }
 
        mutex_lock(&head->lock);