diff options
author | Mateusz Guzik <mjg@FreeBSD.org> | 2019-12-16 00:06:22 +0000 |
---|---|---|
committer | Mateusz Guzik <mjg@FreeBSD.org> | 2019-12-16 00:06:22 +0000 |
commit | 6fa079fc3f5e7e120f166420c6f0c60f701ba9ae (patch) | |
tree | e4e1a5b87c3bafe37440d4280532fed52907cd41 /sys/kern/vfs_subr.c | |
parent | 3fd19ce7a5e085b28cd2d5aec444f8f86441686c (diff) | |
download | src-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.c | 5 |
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. |