aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKonstantin Belousov <kib@FreeBSD.org>2021-05-21 07:34:27 +0000
committerKonstantin Belousov <kib@FreeBSD.org>2021-05-22 09:29:44 +0000
commitd713bf79273ad928f591dee2f8a553487e515e9b (patch)
tree03bcfa242a89315b663a4eb6e0b5d03f70c2b2cd
parent33621dfc196e317026aa8b9d916567598a1cedcb (diff)
downloadsrc-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.c10
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));
}
/*