]> git.ipfire.org Git - thirdparty/kernel/stable.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)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Fri, 2 May 2025 05:50:58 +0000 (07:50 +0200)
[ Upstream commit 9546ad1a9bda7362492114f5866b95b0ac4a100e ]

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>
Signed-off-by: Sasha Levin <sashal@kernel.org>
drivers/nvme/host/core.c

index f00665ad0c11a39f294c84134cb5c5dbcc77029e..e36c6fcab1eed89c23490e6946d056d76c2842a7 100644 (file)
@@ -3972,6 +3972,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);
 }
 
 /*