]> www.infradead.org Git - nvme.git/commitdiff
nvme: requeue namespace scan on missed AENs
authorHannes Reinecke <hare@kernel.org>
Thu, 3 Apr 2025 07:19:29 +0000 (09:19 +0200)
committerChristoph Hellwig <hch@lst.de>
Mon, 7 Apr 2025 14:26:50 +0000 (16:26 +0200)
Scanning for namespaces can take some time, so if the target is
reconfigured while the scan is running we may miss a Attached Namespace
Attribute Changed AEN.

Check if the NVME_AER_NOTICE_NS_CHANGED bit is set once the scan has
finished, and requeue scanning to pick up any missed change.

Signed-off-by: Hannes Reinecke <hare@kernel.org>
Reviewed-by: Keith Busch <kbusch@kernel.org>
Signed-off-by: Christoph Hellwig <hch@lst.de>
drivers/nvme/host/core.c

index cc23035148b4ba79a29f216418979bcba4abfb06..dc298de76de1725d8052a6b27d8e7ade05e65e18 100644 (file)
@@ -4295,6 +4295,10 @@ static void nvme_scan_work(struct work_struct *work)
                        nvme_scan_ns_sequential(ctrl);
        }
        mutex_unlock(&ctrl->scan_lock);
+
+       /* Requeue if we have missed AENs */
+       if (test_bit(NVME_AER_NOTICE_NS_CHANGED, &ctrl->events))
+               nvme_queue_scan(ctrl);
 }
 
 /*