[PATCH 2/2] nvme: cancel the queue limit update when nvme_update_zone_info fails
Christoph Hellwig
hch at lst.de
Wed Mar 27 10:21:45 PDT 2024
Starting an atomic queue limits update takes a mutex and thus needs
to be finished, or with the newly added helper, canceled to not leak
the lock critical section.
Fixes: 9b130d681443 ("nvme: use the atomic queue limits update API")
Reported-by: Kanchan Joshi <joshi.k at samsung.com>
Signed-off-by: Christoph Hellwig <hch at lst.de>
---
drivers/nvme/host/core.c | 1 +
1 file changed, 1 insertion(+)
diff --git a/drivers/nvme/host/core.c b/drivers/nvme/host/core.c
index 943d72bdd794ca..f8a9565bee41d2 100644
--- a/drivers/nvme/host/core.c
+++ b/drivers/nvme/host/core.c
@@ -2115,6 +2115,7 @@ static int nvme_update_ns_info_block(struct nvme_ns *ns,
ns->head->ids.csi == NVME_CSI_ZNS) {
ret = nvme_update_zone_info(ns, lbaf, &lim);
if (ret) {
+ queue_limits_cancel_update(ns->disk->queue);
blk_mq_unfreeze_queue(ns->disk->queue);
goto out;
}
--
2.39.2
More information about the Linux-nvme
mailing list