git: d713bf79273a - main - vn_need_pageq_flush(): simplify

Konstantin Belousov kib at FreeBSD.org
Sat May 22 09:31:39 UTC 2021


The branch main has been updated by kib:

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

commit d713bf79273ad928f591dee2f8a553487e515e9b
Author:     Konstantin Belousov <kib at FreeBSD.org>
AuthorDate: 2021-05-21 07:34:27 +0000
Commit:     Konstantin Belousov <kib at FreeBSD.org>
CommitDate: 2021-05-22 09:29:44 +0000

    vn_need_pageq_flush(): simplify
    
    There is no need to own vnode interlock, since v_object is type stable
    and can only change to/from NULL, and no other checks in the function
    access fields protected by the interlock.  Remove the need variable, the
    result of the test is directly usable as return value.
    
    Tested by:      mav, pho
    Sponsored by:   The FreeBSD Foundation
    MFC after:      1 week
---
 sys/kern/vfs_subr.c | 10 +++-------
 1 file changed, 3 insertions(+), 7 deletions(-)

diff --git a/sys/kern/vfs_subr.c b/sys/kern/vfs_subr.c
index 18c5b5b3b148..620d3e974397 100644
--- a/sys/kern/vfs_subr.c
+++ b/sys/kern/vfs_subr.c
@@ -5184,14 +5184,10 @@ int
 vn_need_pageq_flush(struct vnode *vp)
 {
 	struct vm_object *obj;
-	int need;
 
-	MPASS(mtx_owned(VI_MTX(vp)));
-	need = 0;
-	if ((obj = vp->v_object) != NULL && (vp->v_vflag & VV_NOSYNC) == 0 &&
-	    vm_object_mightbedirty(obj))
-		need = 1;
-	return (need);
+	obj = vp->v_object;
+	return (obj != NULL && (vp->v_vflag & VV_NOSYNC) == 0 &&
+	    vm_object_mightbedirty(obj));
 }
 
 /*


More information about the dev-commits-src-main mailing list