diff options
author | Konstantin Belousov <kib@FreeBSD.org> | 2021-05-21 07:34:27 +0000 |
---|---|---|
committer | Konstantin Belousov <kib@FreeBSD.org> | 2021-05-22 09:29:44 +0000 |
commit | d713bf79273ad928f591dee2f8a553487e515e9b (patch) | |
tree | 03bcfa242a89315b663a4eb6e0b5d03f70c2b2cd | |
parent | 33621dfc196e317026aa8b9d916567598a1cedcb (diff) | |
download | src-d713bf79273ad928f591dee2f8a553487e515e9b.tar.gz src-d713bf79273ad928f591dee2f8a553487e515e9b.zip |
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
-rw-r--r-- | sys/kern/vfs_subr.c | 10 |
1 files 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)); } /* |