aboutsummaryrefslogtreecommitdiff
path: root/sys/kern/vfs_subr.c
diff options
context:
space:
mode:
authorMateusz Guzik <mjg@FreeBSD.org>2019-12-16 00:06:22 +0000
committerMateusz Guzik <mjg@FreeBSD.org>2019-12-16 00:06:22 +0000
commit6fa079fc3f5e7e120f166420c6f0c60f701ba9ae (patch)
treee4e1a5b87c3bafe37440d4280532fed52907cd41 /sys/kern/vfs_subr.c
parent3fd19ce7a5e085b28cd2d5aec444f8f86441686c (diff)
downloadsrc-6fa079fc3f5e7e120f166420c6f0c60f701ba9ae.tar.gz
src-6fa079fc3f5e7e120f166420c6f0c60f701ba9ae.zip
vfs: flatten vop vectors
This eliminates the following loop from all VOP calls: while(vop != NULL && \ vop->vop_spare2 == NULL && vop->vop_bypass == NULL) vop = vop->vop_default; Reviewed by: jeff Tesetd by: pho Differential Revision: https://reviews.freebsd.org/D22738
Notes
Notes: svn path=/head/; revision=355790
Diffstat (limited to 'sys/kern/vfs_subr.c')
-rw-r--r--sys/kern/vfs_subr.c5
1 files changed, 5 insertions, 0 deletions
diff --git a/sys/kern/vfs_subr.c b/sys/kern/vfs_subr.c
index 8114d4eb74dc..2731dd034920 100644
--- a/sys/kern/vfs_subr.c
+++ b/sys/kern/vfs_subr.c
@@ -1558,6 +1558,10 @@ getnewvnode(const char *tag, struct mount *mp, struct vop_vector *vops,
int error __unused;
CTR3(KTR_VFS, "%s: mp %p with tag %s", __func__, mp, tag);
+
+ KASSERT(vops->registered,
+ ("%s: not registered vector op %p\n", __func__, vops));
+
vp = NULL;
td = curthread;
if (td->td_vp_reserv > 0) {
@@ -4502,6 +4506,7 @@ static struct vop_vector sync_vnodeops = {
.vop_unlock = vop_stdunlock, /* unlock */
.vop_islocked = vop_stdislocked, /* islocked */
};
+VFS_VOP_VECTOR_REGISTER(sync_vnodeops);
/*
* Create a new filesystem syncer vnode for the specified mount point.