git: 626ec04c2b84 - main - vm_reserv: clarify reserv_from_object

From: Doug Moore <dougm_at_FreeBSD.org>
Date: Mon, 24 Mar 2025 03:21:27 UTC
The branch main has been updated by dougm:

URL: https://cgit.FreeBSD.org/src/commit/?id=626ec04c2b84f646c8b96e0fd1b4aac95d8035ce

commit 626ec04c2b84f646c8b96e0fd1b4aac95d8035ce
Author:     Doug Moore <dougm@FreeBSD.org>
AuthorDate: 2025-03-24 03:19:57 +0000
Commit:     Doug Moore <dougm@FreeBSD.org>
CommitDate: 2025-03-24 03:19:57 +0000

    vm_reserv: clarify reserv_from_object
    
    vm_reserv_from_page returns an existing reservation, or initializes a
    successor pointer, or both.  If it returns an existing reservation,
    callers will ignore the successor pointer, initialized or not, so
    initializing it serves no purpose. So, don't initialize it in that
    case, and make less ambiguous the comment that describes the
    function's behavior.
    
    Reviewed by:    markj, kib, alc
    Differential Revision:  https://reviews.freebsd.org/D49415
---
 sys/vm/vm_reserv.c | 14 +++++---------
 1 file changed, 5 insertions(+), 9 deletions(-)

diff --git a/sys/vm/vm_reserv.c b/sys/vm/vm_reserv.c
index 1102cb61323a..3dc278851cc9 100644
--- a/sys/vm/vm_reserv.c
+++ b/sys/vm/vm_reserv.c
@@ -506,7 +506,8 @@ vm_reserv_from_page(vm_page_t m)
 }
 
 /*
- * Returns an existing reservation or NULL and initialized successor pointer.
+ * Either returns an existing reservation or returns NULL and initializes
+ * successor pointer.
  */
 static vm_reserv_t
 vm_reserv_from_object(vm_object_t object, vm_pindex_t pindex,
@@ -515,7 +516,6 @@ vm_reserv_from_object(vm_object_t object, vm_pindex_t pindex,
 	vm_reserv_t rv;
 	vm_page_t msucc;
 
-	msucc = NULL;
 	if (mpred != NULL) {
 		KASSERT(mpred->object == object,
 		    ("vm_reserv_from_object: object doesn't contain mpred"));
@@ -523,7 +523,7 @@ vm_reserv_from_object(vm_object_t object, vm_pindex_t pindex,
 		    ("vm_reserv_from_object: mpred doesn't precede pindex"));
 		rv = vm_reserv_from_page(mpred);
 		if (rv->object == object && vm_reserv_has_pindex(rv, pindex))
-			goto found;
+			return (rv);
 		msucc = TAILQ_NEXT(mpred, listq);
 	} else
 		msucc = TAILQ_FIRST(&object->memq);
@@ -532,14 +532,10 @@ vm_reserv_from_object(vm_object_t object, vm_pindex_t pindex,
 		    ("vm_reserv_from_object: msucc doesn't succeed pindex"));
 		rv = vm_reserv_from_page(msucc);
 		if (rv->object == object && vm_reserv_has_pindex(rv, pindex))
-			goto found;
+			return (rv);
 	}
-	rv = NULL;
-
-found:
 	*msuccp = msucc;
-
-	return (rv);
+	return (NULL);
 }
 
 /*