git: 8922c5b8211e - main - nvmf: Fix an off by one error when scanning active namespace IDs

From: John Baldwin <jhb_at_FreeBSD.org>
Date: Tue, 05 Nov 2024 01:29:07 UTC
The branch main has been updated by jhb:

URL: https://cgit.FreeBSD.org/src/commit/?id=8922c5b8211e5b2f64b10791b51d08d5b7945f56

commit 8922c5b8211e5b2f64b10791b51d08d5b7945f56
Author:     John Baldwin <jhb@FreeBSD.org>
AuthorDate: 2024-11-05 01:27:14 +0000
Commit:     John Baldwin <jhb@FreeBSD.org>
CommitDate: 2024-11-05 01:27:14 +0000

    nvmf: Fix an off by one error when scanning active namespace IDs
    
    The active namespace list query fetches namespaces greater than the
    passed in namespace ID, not greater than or equal to the passed in
    namespace ID.  Thus, a multi-page request should start with the last
    namespace ID from the previous page, not that ID plus 1.
    
    While here, make use of NVME_GLOBAL_NAMESPACE_TAG instead of a magic
    number to handle the edge case that the last namespace ID in a page is
    the largest valid namespace ID.
    
    Reviewed by:    chuck
    Sponsored by:   Chelsio Communications
    Differential Revision:  https://reviews.freebsd.org/D47393
---
 sys/dev/nvmf/host/nvmf.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/sys/dev/nvmf/host/nvmf.c b/sys/dev/nvmf/host/nvmf.c
index 2c438db2eb23..804e7528c931 100644
--- a/sys/dev/nvmf/host/nvmf.c
+++ b/sys/dev/nvmf/host/nvmf.c
@@ -376,10 +376,10 @@ nvmf_scan_active_nslist(struct nvmf_softc *sc, struct nvme_ns_list *nslist,
 
 	MPASS(nsid == nslist->ns[nitems(nslist->ns) - 1] && nsid != 0);
 
-	if (nsid >= 0xfffffffd)
+	if (nsid >= NVME_GLOBAL_NAMESPACE_TAG - 1)
 		*nsidp = 0;
 	else
-		*nsidp = nsid + 1;
+		*nsidp = nsid;
 	return (true);
 }