Module Name:    src
Committed By:   dholland
Date:           Sun Jul 18 23:57:16 UTC 2021

Modified Files:
        src/external/cddl/osnet/dist/uts/common/fs/zfs: zfs_vnops.c
        src/sys/fs/adosfs: advnops.c
        src/sys/fs/cd9660: cd9660_node.h
        src/sys/fs/filecorefs: filecore_node.h filecore_vnops.c
        src/sys/fs/msdosfs: denode.h msdosfs_vnops.c
        src/sys/fs/ptyfs: ptyfs_vnops.c
        src/sys/fs/tmpfs: tmpfs_fifoops.h tmpfs_specops.h tmpfs_vnops.c
            tmpfs_vnops.h
        src/sys/miscfs/deadfs: dead_vnops.c
        src/sys/miscfs/procfs: procfs_vnops.c
        src/sys/miscfs/specfs: spec_vnops.c specdev.h
        src/sys/nfs: nfs_vnops.c nfsnode.h
        src/sys/ufs/ext2fs: ext2fs_vnops.c
        src/sys/ufs/ffs: ffs_vnops.c
        src/sys/ufs/lfs: lfs_vnops.c ulfs_extern.h
        src/sys/ufs/mfs: mfs_extern.h mfs_vnops.c mfsnode.h
        src/sys/ufs/ufs: ufs_extern.h

Log Message:
Abolish all the silly indirection macros for initializing vnode ops tables.

These are things of the form #define foofs_op genfs_op, or #define
foofs_op genfs_eopnotsupp, or similar. They serve no purpose besides
obfuscation, and have gotten cutpasted all over everywhere.


To generate a diff of this commit:
cvs rdiff -u -r1.73 -r1.74 \
    src/external/cddl/osnet/dist/uts/common/fs/zfs/zfs_vnops.c
cvs rdiff -u -r1.56 -r1.57 src/sys/fs/adosfs/advnops.c
cvs rdiff -u -r1.16 -r1.17 src/sys/fs/cd9660/cd9660_node.h
cvs rdiff -u -r1.6 -r1.7 src/sys/fs/filecorefs/filecore_node.h
cvs rdiff -u -r1.48 -r1.49 src/sys/fs/filecorefs/filecore_vnops.c
cvs rdiff -u -r1.25 -r1.26 src/sys/fs/msdosfs/denode.h
cvs rdiff -u -r1.105 -r1.106 src/sys/fs/msdosfs/msdosfs_vnops.c
cvs rdiff -u -r1.64 -r1.65 src/sys/fs/ptyfs/ptyfs_vnops.c
cvs rdiff -u -r1.8 -r1.9 src/sys/fs/tmpfs/tmpfs_fifoops.h \
    src/sys/fs/tmpfs/tmpfs_specops.h
cvs rdiff -u -r1.146 -r1.147 src/sys/fs/tmpfs/tmpfs_vnops.c
cvs rdiff -u -r1.13 -r1.14 src/sys/fs/tmpfs/tmpfs_vnops.h
cvs rdiff -u -r1.64 -r1.65 src/sys/miscfs/deadfs/dead_vnops.c
cvs rdiff -u -r1.217 -r1.218 src/sys/miscfs/procfs/procfs_vnops.c
cvs rdiff -u -r1.182 -r1.183 src/sys/miscfs/specfs/spec_vnops.c
cvs rdiff -u -r1.45 -r1.46 src/sys/miscfs/specfs/specdev.h
cvs rdiff -u -r1.319 -r1.320 src/sys/nfs/nfs_vnops.c
cvs rdiff -u -r1.74 -r1.75 src/sys/nfs/nfsnode.h
cvs rdiff -u -r1.134 -r1.135 src/sys/ufs/ext2fs/ext2fs_vnops.c
cvs rdiff -u -r1.136 -r1.137 src/sys/ufs/ffs/ffs_vnops.c
cvs rdiff -u -r1.338 -r1.339 src/sys/ufs/lfs/lfs_vnops.c
cvs rdiff -u -r1.25 -r1.26 src/sys/ufs/lfs/ulfs_extern.h
cvs rdiff -u -r1.31 -r1.32 src/sys/ufs/mfs/mfs_extern.h
cvs rdiff -u -r1.62 -r1.63 src/sys/ufs/mfs/mfs_vnops.c
cvs rdiff -u -r1.21 -r1.22 src/sys/ufs/mfs/mfsnode.h
cvs rdiff -u -r1.86 -r1.87 src/sys/ufs/ufs/ufs_extern.h

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.

Modified files:

Index: src/external/cddl/osnet/dist/uts/common/fs/zfs/zfs_vnops.c
diff -u src/external/cddl/osnet/dist/uts/common/fs/zfs/zfs_vnops.c:1.73 src/external/cddl/osnet/dist/uts/common/fs/zfs/zfs_vnops.c:1.74
--- src/external/cddl/osnet/dist/uts/common/fs/zfs/zfs_vnops.c:1.73	Sun Jul 18 23:56:12 2021
+++ src/external/cddl/osnet/dist/uts/common/fs/zfs/zfs_vnops.c	Sun Jul 18 23:57:13 2021
@@ -6337,13 +6337,6 @@ const struct genfs_ops zfs_genfsops = {
 	.gop_putrange = zfs_netbsd_gop_putrange,
 };
 
-#define	zfs_netbsd_lock		genfs_lock
-#define	zfs_netbsd_unlock	genfs_unlock
-#define	zfs_netbsd_islocked	genfs_islocked
-#define zfs_netbsd_seek		genfs_seek
-#define zfs_netbsd_mmap		genfs_mmap
-#define zfs_netbsd_fcntl	genfs_fcntl
-
 int (**zfs_vnodeop_p)(void *);
 const struct vnodeopv_entry_desc zfs_vnodeop_entries[] = {
 	{ &vop_default_desc,		vn_default_error },
@@ -6366,8 +6359,8 @@ const struct vnodeopv_entry_desc zfs_vno
 	{ &vop_fsync_desc,		zfs_netbsd_fsync },
 	{ &vop_remove_desc,		zfs_netbsd_remove },
 	{ &vop_link_desc,		zfs_netbsd_link },
-	{ &vop_lock_desc,		zfs_netbsd_lock },
-	{ &vop_unlock_desc,		zfs_netbsd_unlock },
+	{ &vop_lock_desc,		genfs_lock },
+	{ &vop_unlock_desc,		genfs_unlock },
 	{ &vop_rename_desc,		zfs_netbsd_rename },
 	{ &vop_mkdir_desc,		zfs_netbsd_mkdir },
 	{ &vop_rmdir_desc,		zfs_netbsd_rmdir },
@@ -6377,14 +6370,14 @@ const struct vnodeopv_entry_desc zfs_vno
 	{ &vop_inactive_desc,		zfs_netbsd_inactive },
 	{ &vop_reclaim_desc,		zfs_netbsd_reclaim },
 	{ &vop_pathconf_desc,		zfs_netbsd_pathconf },
-	{ &vop_seek_desc,		zfs_netbsd_seek },
+	{ &vop_seek_desc,		genfs_seek },
 	{ &vop_getpages_desc,		zfs_netbsd_getpages },
 	{ &vop_putpages_desc,		zfs_netbsd_putpages },
-	{ &vop_mmap_desc,		zfs_netbsd_mmap },
-	{ &vop_islocked_desc,		zfs_netbsd_islocked },
+	{ &vop_mmap_desc,		genfs_mmap },
+	{ &vop_islocked_desc,		genfs_islocked },
 	{ &vop_advlock_desc,		zfs_netbsd_advlock },
 	{ &vop_print_desc,		zfs_netbsd_print },
-	{ &vop_fcntl_desc,		zfs_netbsd_fcntl },
+	{ &vop_fcntl_desc,		genfs_fcntl },
 	{ NULL, NULL }
 };
 
@@ -6403,14 +6396,14 @@ const struct vnodeopv_entry_desc zfs_spe
 	{ &vop_read_desc,		/**/zfs_netbsd_read },
 	{ &vop_write_desc,		/**/zfs_netbsd_write },
 	{ &vop_fsync_desc,		zfs_spec_fsync },
-	{ &vop_lock_desc,		zfs_netbsd_lock },
-	{ &vop_unlock_desc,		zfs_netbsd_unlock },
+	{ &vop_lock_desc,		genfs_lock },
+	{ &vop_unlock_desc,		genfs_unlock },
 	{ &vop_inactive_desc,		zfs_netbsd_inactive },
 	{ &vop_reclaim_desc,		zfs_netbsd_reclaim },
-	{ &vop_islocked_desc,		zfs_netbsd_islocked },
-	{ &vop_bwrite_desc,		spec_bwrite },
+	{ &vop_islocked_desc,		genfs_islocked },
+	{ &vop_bwrite_desc,		vn_bwrite },
 	{ &vop_print_desc,		zfs_netbsd_print },
-	{ &vop_fcntl_desc,		zfs_netbsd_fcntl },
+	{ &vop_fcntl_desc,		genfs_fcntl },
 	{ NULL, NULL }
 };
 
@@ -6429,15 +6422,15 @@ const struct vnodeopv_entry_desc zfs_fif
 	{ &vop_read_desc,		/**/zfs_netbsd_read },
 	{ &vop_write_desc,		/**/zfs_netbsd_write },
 	{ &vop_fsync_desc,		zfs_netbsd_fsync },
-	{ &vop_lock_desc,		zfs_netbsd_lock },
-	{ &vop_unlock_desc,		zfs_netbsd_unlock },
+	{ &vop_lock_desc,		genfs_lock },
+	{ &vop_unlock_desc,		genfs_unlock },
 	{ &vop_inactive_desc,		zfs_netbsd_inactive },
 	{ &vop_reclaim_desc,		zfs_netbsd_reclaim },
-	{ &vop_islocked_desc,		zfs_netbsd_islocked },
+	{ &vop_islocked_desc,		genfs_islocked },
 	{ &vop_bwrite_desc,		vn_bwrite },
 	{ &vop_strategy_desc,		vn_fifo_bypass },
 	{ &vop_print_desc,		zfs_netbsd_print },
-	{ &vop_fcntl_desc,		zfs_netbsd_fcntl },
+	{ &vop_fcntl_desc,		genfs_fcntl },
 	{ NULL, NULL }
 };
 

Index: src/sys/fs/adosfs/advnops.c
diff -u src/sys/fs/adosfs/advnops.c:1.56 src/sys/fs/adosfs/advnops.c:1.57
--- src/sys/fs/adosfs/advnops.c:1.56	Tue Jun 29 22:34:05 2021
+++ src/sys/fs/adosfs/advnops.c	Sun Jul 18 23:57:13 2021
@@ -1,4 +1,4 @@
-/*	$NetBSD: advnops.c,v 1.56 2021/06/29 22:34:05 dholland Exp $	*/
+/*	$NetBSD: advnops.c,v 1.57 2021/07/18 23:57:13 dholland Exp $	*/
 
 /*
  * Copyright (c) 1994 Christian E. Hopps
@@ -32,7 +32,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: advnops.c,v 1.56 2021/06/29 22:34:05 dholland Exp $");
+__KERNEL_RCSID(0, "$NetBSD: advnops.c,v 1.57 2021/07/18 23:57:13 dholland Exp $");
 
 #include <sys/param.h>
 #include <sys/systm.h>
@@ -57,17 +57,12 @@ __KERNEL_RCSID(0, "$NetBSD: advnops.c,v 
 
 extern struct vnodeops adosfs_vnodeops;
 
-#define	adosfs_open	genfs_nullop
 int	adosfs_getattr(void *);
 int	adosfs_read(void *);
 int	adosfs_write(void *);
-#define	adosfs_fcntl	genfs_fcntl
-#define	adosfs_ioctl	genfs_enoioctl
-#define	adosfs_poll	genfs_poll
 int	adosfs_strategy(void *);
 int	adosfs_link(void *);
 int	adosfs_symlink(void *);
-#define	adosfs_abortop	genfs_abortop
 int	adosfs_bmap(void *);
 int	adosfs_print(void *);
 int	adosfs_readdir(void *);
@@ -77,55 +72,39 @@ int	adosfs_inactive(void *);
 int	adosfs_reclaim(void *);
 int	adosfs_pathconf(void *);
 
-#define adosfs_close 	genfs_nullop
-#define adosfs_fsync 	genfs_nullop
-#define adosfs_seek 	genfs_seek
-
-#define adosfs_advlock 	genfs_einval
-#define adosfs_bwrite 	genfs_eopnotsupp
-#define adosfs_create 	genfs_eopnotsupp
-#define adosfs_mkdir 	genfs_eopnotsupp
-#define adosfs_mknod 	genfs_eopnotsupp
-#define adosfs_revoke	genfs_revoke
-#define adosfs_mmap 	genfs_mmap
-#define adosfs_remove 	genfs_eopnotsupp
-#define adosfs_rename 	genfs_eopnotsupp
-#define adosfs_rmdir 	genfs_eopnotsupp
-#define adosfs_setattr 	genfs_eopnotsupp
-
 const struct vnodeopv_entry_desc adosfs_vnodeop_entries[] = {
 	{ &vop_default_desc, vn_default_error },
 	{ &vop_parsepath_desc, genfs_parsepath },	/* parsepath */
 	{ &vop_lookup_desc, adosfs_lookup },		/* lookup */
-	{ &vop_create_desc, adosfs_create },		/* create */
-	{ &vop_mknod_desc, adosfs_mknod },		/* mknod */
-	{ &vop_open_desc, adosfs_open },		/* open */
-	{ &vop_close_desc, adosfs_close },		/* close */
+	{ &vop_create_desc, genfs_eopnotsupp },		/* create */
+	{ &vop_mknod_desc, genfs_eopnotsupp },		/* mknod */
+	{ &vop_open_desc, genfs_nullop },		/* open */
+	{ &vop_close_desc, genfs_nullop },		/* close */
 	{ &vop_access_desc, adosfs_access },		/* access */
 	{ &vop_accessx_desc, genfs_accessx },		/* accessx */
 	{ &vop_getattr_desc, adosfs_getattr },		/* getattr */
-	{ &vop_setattr_desc, adosfs_setattr },		/* setattr */
+	{ &vop_setattr_desc, genfs_eopnotsupp },	/* setattr */
 	{ &vop_read_desc, adosfs_read },		/* read */
 	{ &vop_write_desc, adosfs_write },		/* write */
 	{ &vop_fallocate_desc, genfs_eopnotsupp },	/* fallocate */
 	{ &vop_fdiscard_desc, genfs_eopnotsupp },	/* fdiscard */
-	{ &vop_fcntl_desc, adosfs_fcntl },		/* fcntl */
-	{ &vop_ioctl_desc, adosfs_ioctl },		/* ioctl */
-	{ &vop_poll_desc, adosfs_poll },		/* poll */
+	{ &vop_fcntl_desc, genfs_fcntl },		/* fcntl */
+	{ &vop_ioctl_desc, genfs_enoioctl },		/* ioctl */
+	{ &vop_poll_desc, genfs_poll },			/* poll */
 	{ &vop_kqfilter_desc, genfs_kqfilter },		/* kqfilter */
-	{ &vop_revoke_desc, adosfs_revoke },		/* revoke */
-	{ &vop_mmap_desc, adosfs_mmap },		/* mmap */
-	{ &vop_fsync_desc, adosfs_fsync },		/* fsync */
-	{ &vop_seek_desc, adosfs_seek },		/* seek */
-	{ &vop_remove_desc, adosfs_remove },		/* remove */
+	{ &vop_revoke_desc, genfs_revoke },		/* revoke */
+	{ &vop_mmap_desc, genfs_mmap },			/* mmap */
+	{ &vop_fsync_desc, genfs_nullop },		/* fsync */
+	{ &vop_seek_desc, genfs_seek },			/* seek */
+	{ &vop_remove_desc, genfs_eopnotsupp },		/* remove */
 	{ &vop_link_desc, adosfs_link },		/* link */
-	{ &vop_rename_desc, adosfs_rename },		/* rename */
-	{ &vop_mkdir_desc, adosfs_mkdir },		/* mkdir */
-	{ &vop_rmdir_desc, adosfs_rmdir },		/* rmdir */
+	{ &vop_rename_desc, genfs_eopnotsupp },		/* rename */
+	{ &vop_mkdir_desc, genfs_eopnotsupp },		/* mkdir */
+	{ &vop_rmdir_desc, genfs_eopnotsupp },		/* rmdir */
 	{ &vop_symlink_desc, adosfs_symlink },		/* symlink */
 	{ &vop_readdir_desc, adosfs_readdir },		/* readdir */
 	{ &vop_readlink_desc, adosfs_readlink },	/* readlink */
-	{ &vop_abortop_desc, adosfs_abortop },		/* abortop */
+	{ &vop_abortop_desc, genfs_abortop },		/* abortop */
 	{ &vop_inactive_desc, adosfs_inactive },	/* inactive */
 	{ &vop_reclaim_desc, adosfs_reclaim },		/* reclaim */
 	{ &vop_lock_desc, genfs_lock },			/* lock */
@@ -135,8 +114,8 @@ const struct vnodeopv_entry_desc adosfs_
 	{ &vop_print_desc, adosfs_print },		/* print */
 	{ &vop_islocked_desc, genfs_islocked },		/* islocked */
 	{ &vop_pathconf_desc, adosfs_pathconf },	/* pathconf */
-	{ &vop_advlock_desc, adosfs_advlock },		/* advlock */
-	{ &vop_bwrite_desc, adosfs_bwrite },		/* bwrite */
+	{ &vop_advlock_desc, genfs_einval },		/* advlock */
+	{ &vop_bwrite_desc, genfs_eopnotsupp },		/* bwrite */
 	{ &vop_getpages_desc, genfs_getpages },		/* getpages */
 	{ &vop_putpages_desc, genfs_putpages },		/* putpages */
 	{ NULL, NULL }

Index: src/sys/fs/cd9660/cd9660_node.h
diff -u src/sys/fs/cd9660/cd9660_node.h:1.16 src/sys/fs/cd9660/cd9660_node.h:1.17
--- src/sys/fs/cd9660/cd9660_node.h:1.16	Mon Jun 16 09:55:49 2014
+++ src/sys/fs/cd9660/cd9660_node.h	Sun Jul 18 23:57:13 2021
@@ -1,4 +1,4 @@
-/*	$NetBSD: cd9660_node.h,v 1.16 2014/06/16 09:55:49 hannken Exp $	*/
+/*	$NetBSD: cd9660_node.h,v 1.17 2021/07/18 23:57:13 dholland Exp $	*/
 
 /*-
  * Copyright (c) 1994
@@ -97,18 +97,11 @@ struct iso_node {
  * Prototypes for ISOFS vnode operations
  */
 int	cd9660_lookup(void *);
-#define	cd9660_open	genfs_nullop
-#define	cd9660_close	genfs_nullop
 int	cd9660_access(void *);
 int	cd9660_getattr(void *);
 int	cd9660_read(void *);
-#define	cd9660_ioctl	genfs_enoioctl
-#define	cd9660_poll	genfs_poll
-#define	cd9660_mmap	genfs_mmap
-#define	cd9660_seek	genfs_seek
 int	cd9660_readdir(void *);
 int	cd9660_readlink(void *);
-#define	cd9660_abortop	genfs_abortop
 int	cd9660_inactive(void *);
 int	cd9660_reclaim(void *);
 int	cd9660_link(void *);

Index: src/sys/fs/filecorefs/filecore_node.h
diff -u src/sys/fs/filecorefs/filecore_node.h:1.6 src/sys/fs/filecorefs/filecore_node.h:1.7
--- src/sys/fs/filecorefs/filecore_node.h:1.6	Sat Oct  4 13:27:24 2014
+++ src/sys/fs/filecorefs/filecore_node.h	Sun Jul 18 23:57:14 2021
@@ -1,4 +1,4 @@
-/*	$NetBSD: filecore_node.h,v 1.6 2014/10/04 13:27:24 hannken Exp $	*/
+/*	$NetBSD: filecore_node.h,v 1.7 2021/07/18 23:57:14 dholland Exp $	*/
 
 /*-
  * Copyright (c) 1994 The Regents of the University of California.
@@ -112,17 +112,11 @@ struct filecore_node {
  * Prototypes for Filecore vnode operations
  */
 int	filecore_lookup(void *);
-#define	filecore_open		genfs_nullop
-#define	filecore_close		genfs_nullop
 int	filecore_access(void *);
 int	filecore_getattr(void *);
 int	filecore_read(void *);
-#define	filecore_poll		genfs_poll
-#define	filecore_mmap		genfs_mmap
-#define	filecore_seek		genfs_seek
 int	filecore_readdir(void *);
 int	filecore_readlink(void *);
-#define	filecore_abortop	genfs_abortop
 int	filecore_inactive(void *);
 int	filecore_reclaim(void *);
 int	filecore_link(void *);

Index: src/sys/fs/filecorefs/filecore_vnops.c
diff -u src/sys/fs/filecorefs/filecore_vnops.c:1.48 src/sys/fs/filecorefs/filecore_vnops.c:1.49
--- src/sys/fs/filecorefs/filecore_vnops.c:1.48	Tue Jun 29 22:34:06 2021
+++ src/sys/fs/filecorefs/filecore_vnops.c	Sun Jul 18 23:57:14 2021
@@ -1,4 +1,4 @@
-/*	$NetBSD: filecore_vnops.c,v 1.48 2021/06/29 22:34:06 dholland Exp $	*/
+/*	$NetBSD: filecore_vnops.c,v 1.49 2021/07/18 23:57:14 dholland Exp $	*/
 
 /*-
  * Copyright (c) 1994 The Regents of the University of California.
@@ -66,7 +66,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: filecore_vnops.c,v 1.48 2021/06/29 22:34:06 dholland Exp $");
+__KERNEL_RCSID(0, "$NetBSD: filecore_vnops.c,v 1.49 2021/07/18 23:57:14 dholland Exp $");
 
 #include <sys/param.h>
 #include <sys/systm.h>
@@ -531,24 +531,6 @@ filecore_pathconf(void *v)
 }
 
 /*
- * Global vfs data structures for isofs
- */
-#define	filecore_create	genfs_eopnotsupp
-#define	filecore_mknod	genfs_eopnotsupp
-#define	filecore_write	genfs_eopnotsupp
-#define	filecore_setattr	genfs_eopnotsupp
-#define	filecore_fcntl	genfs_fcntl
-#define	filecore_ioctl	genfs_enoioctl
-#define	filecore_fsync	genfs_nullop
-#define	filecore_remove	genfs_eopnotsupp
-#define	filecore_rename	genfs_eopnotsupp
-#define	filecore_mkdir	genfs_eopnotsupp
-#define	filecore_rmdir	genfs_eopnotsupp
-#define	filecore_advlock	genfs_eopnotsupp
-#define	filecore_bwrite	genfs_eopnotsupp
-#define filecore_revoke	genfs_revoke
-
-/*
  * Global vfs data structures for filecore
  */
 int (**filecore_vnodeop_p)(void *);
@@ -556,35 +538,35 @@ const struct vnodeopv_entry_desc filecor
 	{ &vop_default_desc, vn_default_error },
 	{ &vop_parsepath_desc, genfs_parsepath },	/* parsepath */
 	{ &vop_lookup_desc, filecore_lookup },		/* lookup */
-	{ &vop_create_desc, filecore_create },		/* create */
-	{ &vop_mknod_desc, filecore_mknod },		/* mknod */
-	{ &vop_open_desc, filecore_open },		/* open */
-	{ &vop_close_desc, filecore_close },		/* close */
+	{ &vop_create_desc, genfs_eopnotsupp },		/* create */
+	{ &vop_mknod_desc, genfs_eopnotsupp },		/* mknod */
+	{ &vop_open_desc, genfs_nullop },		/* open */
+	{ &vop_close_desc, genfs_nullop },		/* close */
 	{ &vop_access_desc, filecore_access },		/* access */
 	{ &vop_accessx_desc, genfs_accessx },		/* accessx */
 	{ &vop_getattr_desc, filecore_getattr },	/* getattr */
-	{ &vop_setattr_desc, filecore_setattr },	/* setattr */
+	{ &vop_setattr_desc, genfs_eopnotsupp },	/* setattr */
 	{ &vop_read_desc, filecore_read },		/* read */
-	{ &vop_write_desc, filecore_write },		/* write */
+	{ &vop_write_desc, genfs_eopnotsupp },		/* write */
 	{ &vop_fallocate_desc, genfs_eopnotsupp },	/* fallocate */
 	{ &vop_fdiscard_desc, genfs_eopnotsupp },	/* fdiscard */
-	{ &vop_fcntl_desc, filecore_fcntl },		/* fcntl */
-	{ &vop_ioctl_desc, filecore_ioctl },		/* ioctl */
-	{ &vop_poll_desc, filecore_poll },		/* poll */
+	{ &vop_fcntl_desc, genfs_fcntl },		/* fcntl */
+	{ &vop_ioctl_desc, genfs_enoioctl },		/* ioctl */
+	{ &vop_poll_desc, genfs_poll },			/* poll */
 	{ &vop_kqfilter_desc, genfs_kqfilter },		/* kqfilter */
-	{ &vop_revoke_desc, filecore_revoke },		/* revoke */
-	{ &vop_mmap_desc, filecore_mmap },		/* mmap */
-	{ &vop_fsync_desc, filecore_fsync },		/* fsync */
-	{ &vop_seek_desc, filecore_seek },		/* seek */
-	{ &vop_remove_desc, filecore_remove },		/* remove */
+	{ &vop_revoke_desc, genfs_revoke },		/* revoke */
+	{ &vop_mmap_desc, genfs_mmap },			/* mmap */
+	{ &vop_fsync_desc, genfs_nullop },		/* fsync */
+	{ &vop_seek_desc, genfs_seek },			/* seek */
+	{ &vop_remove_desc, genfs_eopnotsupp },		/* remove */
 	{ &vop_link_desc, filecore_link },		/* link */
-	{ &vop_rename_desc, filecore_rename },		/* rename */
-	{ &vop_mkdir_desc, filecore_mkdir },		/* mkdir */
-	{ &vop_rmdir_desc, filecore_rmdir },		/* rmdir */
+	{ &vop_rename_desc, genfs_eopnotsupp },		/* rename */
+	{ &vop_mkdir_desc, genfs_eopnotsupp },		/* mkdir */
+	{ &vop_rmdir_desc, genfs_eopnotsupp },		/* rmdir */
 	{ &vop_symlink_desc, filecore_symlink },	/* symlink */
 	{ &vop_readdir_desc, filecore_readdir },      	/* readdir */
 	{ &vop_readlink_desc, filecore_readlink },	/* readlink */
-	{ &vop_abortop_desc, filecore_abortop },       	/* abortop */
+	{ &vop_abortop_desc, genfs_abortop },       	/* abortop */
 	{ &vop_inactive_desc, filecore_inactive },	/* inactive */
 	{ &vop_reclaim_desc, filecore_reclaim },       	/* reclaim */
 	{ &vop_lock_desc, genfs_lock },			/* lock */
@@ -594,7 +576,7 @@ const struct vnodeopv_entry_desc filecor
 	{ &vop_print_desc, filecore_print },		/* print */
 	{ &vop_islocked_desc, genfs_islocked },		/* islocked */
 	{ &vop_pathconf_desc, filecore_pathconf },	/* pathconf */
-	{ &vop_advlock_desc, filecore_advlock },       	/* advlock */
+	{ &vop_advlock_desc, genfs_eopnotsupp },       	/* advlock */
 	{ &vop_bwrite_desc, vn_bwrite },		/* bwrite */
 	{ &vop_getpages_desc, genfs_getpages },		/* getpages */
 	{ &vop_putpages_desc, genfs_putpages },		/* putpages */

Index: src/sys/fs/msdosfs/denode.h
diff -u src/sys/fs/msdosfs/denode.h:1.25 src/sys/fs/msdosfs/denode.h:1.26
--- src/sys/fs/msdosfs/denode.h:1.25	Sat Jan 14 17:17:53 2017
+++ src/sys/fs/msdosfs/denode.h	Sun Jul 18 23:57:14 2021
@@ -1,4 +1,4 @@
-/*	$NetBSD: denode.h,v 1.25 2017/01/14 17:17:53 maya Exp $	*/
+/*	$NetBSD: denode.h,v 1.26 2021/07/18 23:57:14 dholland Exp $	*/
 
 /*-
  * Copyright (C) 1994, 1995, 1997 Wolfgang Solfrank.
@@ -279,19 +279,12 @@ int	msdosfs_getattr		(void *);
 int	msdosfs_setattr		(void *);
 int	msdosfs_read		(void *);
 int	msdosfs_write		(void *);
-#define	msdosfs_lease_check	genfs_lease_check
-#define	msdosfs_ioctl		genfs_enoioctl
-#define	msdosfs_poll		genfs_poll
-#define	msdosfs_revoke		genfs_revoke
-#define	msdosfs_mmap		genfs_mmap
 int	msdosfs_fsync		(void *);
-#define	msdosfs_seek		genfs_seek
 int	msdosfs_remove		(void *);
 int	msdosfs_rename		(void *);
 int	msdosfs_mkdir		(void *);
 int	msdosfs_rmdir		(void *);
 int	msdosfs_readdir		(void *);
-#define	msdosfs_abortop		genfs_abortop
 int	msdosfs_inactive	(void *);
 int	msdosfs_reclaim		(void *);
 int	msdosfs_bmap		(void *);

Index: src/sys/fs/msdosfs/msdosfs_vnops.c
diff -u src/sys/fs/msdosfs/msdosfs_vnops.c:1.105 src/sys/fs/msdosfs/msdosfs_vnops.c:1.106
--- src/sys/fs/msdosfs/msdosfs_vnops.c:1.105	Tue Jun 29 22:34:07 2021
+++ src/sys/fs/msdosfs/msdosfs_vnops.c	Sun Jul 18 23:57:14 2021
@@ -1,4 +1,4 @@
-/*	$NetBSD: msdosfs_vnops.c,v 1.105 2021/06/29 22:34:07 dholland Exp $	*/
+/*	$NetBSD: msdosfs_vnops.c,v 1.106 2021/07/18 23:57:14 dholland Exp $	*/
 
 /*-
  * Copyright (C) 1994, 1995, 1997 Wolfgang Solfrank.
@@ -48,7 +48,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: msdosfs_vnops.c,v 1.105 2021/06/29 22:34:07 dholland Exp $");
+__KERNEL_RCSID(0, "$NetBSD: msdosfs_vnops.c,v 1.106 2021/07/18 23:57:14 dholland Exp $");
 
 #include <sys/param.h>
 #include <sys/systm.h>
@@ -1856,13 +1856,13 @@ const struct vnodeopv_entry_desc msdosfs
 	{ &vop_fallocate_desc, genfs_eopnotsupp },	/* fallocate */
 	{ &vop_fdiscard_desc, genfs_eopnotsupp },	/* fdiscard */
 	{ &vop_fcntl_desc, genfs_fcntl },		/* fcntl */
-	{ &vop_ioctl_desc, msdosfs_ioctl },		/* ioctl */
-	{ &vop_poll_desc, msdosfs_poll },		/* poll */
+	{ &vop_ioctl_desc, genfs_enoioctl },		/* ioctl */
+	{ &vop_poll_desc, genfs_poll },			/* poll */
 	{ &vop_kqfilter_desc, genfs_kqfilter },		/* kqfilter */
-	{ &vop_revoke_desc, msdosfs_revoke },		/* revoke */
-	{ &vop_mmap_desc, msdosfs_mmap },		/* mmap */
+	{ &vop_revoke_desc, genfs_revoke },		/* revoke */
+	{ &vop_mmap_desc, genfs_mmap },			/* mmap */
 	{ &vop_fsync_desc, msdosfs_fsync },		/* fsync */
-	{ &vop_seek_desc, msdosfs_seek },		/* seek */
+	{ &vop_seek_desc, genfs_seek },			/* seek */
 	{ &vop_remove_desc, msdosfs_remove },		/* remove */
 	{ &vop_link_desc, genfs_eopnotsupp },		/* link */
 	{ &vop_rename_desc, msdosfs_rename },		/* rename */
@@ -1871,7 +1871,7 @@ const struct vnodeopv_entry_desc msdosfs
 	{ &vop_symlink_desc, genfs_eopnotsupp },	/* symlink */
 	{ &vop_readdir_desc, msdosfs_readdir },		/* readdir */
 	{ &vop_readlink_desc, genfs_einval },		/* readlink */
-	{ &vop_abortop_desc, msdosfs_abortop },		/* abortop */
+	{ &vop_abortop_desc, genfs_abortop },		/* abortop */
 	{ &vop_inactive_desc, msdosfs_inactive },	/* inactive */
 	{ &vop_reclaim_desc, msdosfs_reclaim },		/* reclaim */
 	{ &vop_lock_desc, genfs_lock },			/* lock */

Index: src/sys/fs/ptyfs/ptyfs_vnops.c
diff -u src/sys/fs/ptyfs/ptyfs_vnops.c:1.64 src/sys/fs/ptyfs/ptyfs_vnops.c:1.65
--- src/sys/fs/ptyfs/ptyfs_vnops.c:1.64	Tue Jun 29 22:34:07 2021
+++ src/sys/fs/ptyfs/ptyfs_vnops.c	Sun Jul 18 23:57:14 2021
@@ -1,4 +1,4 @@
-/*	$NetBSD: ptyfs_vnops.c,v 1.64 2021/06/29 22:34:07 dholland Exp $	*/
+/*	$NetBSD: ptyfs_vnops.c,v 1.65 2021/07/18 23:57:14 dholland Exp $	*/
 
 /*
  * Copyright (c) 1993, 1995
@@ -76,7 +76,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: ptyfs_vnops.c,v 1.64 2021/06/29 22:34:07 dholland Exp $");
+__KERNEL_RCSID(0, "$NetBSD: ptyfs_vnops.c,v 1.65 2021/07/18 23:57:14 dholland Exp $");
 
 #include <sys/param.h>
 #include <sys/systm.h>
@@ -114,8 +114,6 @@ MALLOC_DECLARE(M_PTYFSTMP);
  */
 
 int	ptyfs_lookup	(void *);
-#define	ptyfs_create	genfs_eopnotsupp
-#define	ptyfs_mknod	genfs_eopnotsupp
 int	ptyfs_open	(void *);
 int	ptyfs_close	(void *);
 int	ptyfs_access	(void *);
@@ -123,35 +121,15 @@ int	ptyfs_getattr	(void *);
 int	ptyfs_setattr	(void *);
 int	ptyfs_read	(void *);
 int	ptyfs_write	(void *);
-#define	ptyfs_fcntl	genfs_fcntl
 int	ptyfs_ioctl	(void *);
 int	ptyfs_poll	(void *);
 int	ptyfs_kqfilter	(void *);
-#define ptyfs_revoke	genfs_revoke
-#define	ptyfs_mmap	genfs_eopnotsupp
-#define	ptyfs_fsync	genfs_nullop
-#define	ptyfs_seek	genfs_nullop
-#define	ptyfs_remove	genfs_eopnotsupp
-#define	ptyfs_link	genfs_abortop
-#define	ptyfs_rename	genfs_eopnotsupp
-#define	ptyfs_mkdir	genfs_eopnotsupp
-#define	ptyfs_rmdir	genfs_eopnotsupp
-#define	ptyfs_symlink	genfs_abortop
 int	ptyfs_readdir	(void *);
-#define	ptyfs_readlink	genfs_eopnotsupp
-#define	ptyfs_abortop	genfs_abortop
 int	ptyfs_reclaim	(void *);
 int	ptyfs_inactive	(void *);
-#define	ptyfs_lock	genfs_lock
-#define	ptyfs_unlock	genfs_unlock
-#define	ptyfs_bmap	genfs_eopnotsupp
-#define	ptyfs_strategy	genfs_badop
 int	ptyfs_print	(void *);
 int	ptyfs_pathconf	(void *);
-#define	ptyfs_islocked	genfs_islocked
 int	ptyfs_advlock	(void *);
-#define	ptyfs_bwrite	genfs_eopnotsupp
-#define ptyfs_putpages	genfs_null_putpages
 
 static int ptyfs_update(struct vnode *, const struct timespec *,
     const struct timespec *, int);
@@ -168,8 +146,8 @@ const struct vnodeopv_entry_desc ptyfs_v
 	{ &vop_default_desc, vn_default_error },
 	{ &vop_parsepath_desc, genfs_parsepath },	/* parsepath */
 	{ &vop_lookup_desc, ptyfs_lookup },		/* lookup */
-	{ &vop_create_desc, ptyfs_create },		/* create */
-	{ &vop_mknod_desc, ptyfs_mknod },		/* mknod */
+	{ &vop_create_desc, genfs_eopnotsupp },		/* create */
+	{ &vop_mknod_desc, genfs_eopnotsupp },		/* mknod */
 	{ &vop_open_desc, ptyfs_open },			/* open */
 	{ &vop_close_desc, ptyfs_close },		/* close */
 	{ &vop_access_desc, ptyfs_access },		/* access */
@@ -181,34 +159,34 @@ const struct vnodeopv_entry_desc ptyfs_v
 	{ &vop_fallocate_desc, genfs_eopnotsupp },	/* fallocate */
 	{ &vop_fdiscard_desc, genfs_eopnotsupp },	/* fdiscard */
 	{ &vop_ioctl_desc, ptyfs_ioctl },		/* ioctl */
-	{ &vop_fcntl_desc, ptyfs_fcntl },		/* fcntl */
+	{ &vop_fcntl_desc, genfs_fcntl },		/* fcntl */
 	{ &vop_poll_desc, ptyfs_poll },			/* poll */
 	{ &vop_kqfilter_desc, ptyfs_kqfilter },		/* kqfilter */
-	{ &vop_revoke_desc, ptyfs_revoke },		/* revoke */
-	{ &vop_mmap_desc, ptyfs_mmap },			/* mmap */
-	{ &vop_fsync_desc, ptyfs_fsync },		/* fsync */
-	{ &vop_seek_desc, ptyfs_seek },			/* seek */
-	{ &vop_remove_desc, ptyfs_remove },		/* remove */
-	{ &vop_link_desc, ptyfs_link },			/* link */
-	{ &vop_rename_desc, ptyfs_rename },		/* rename */
-	{ &vop_mkdir_desc, ptyfs_mkdir },		/* mkdir */
-	{ &vop_rmdir_desc, ptyfs_rmdir },		/* rmdir */
-	{ &vop_symlink_desc, ptyfs_symlink },		/* symlink */
+	{ &vop_revoke_desc, genfs_revoke },		/* revoke */
+	{ &vop_mmap_desc, genfs_eopnotsupp },		/* mmap */
+	{ &vop_fsync_desc, genfs_nullop },		/* fsync */
+	{ &vop_seek_desc, genfs_nullop },		/* seek */
+	{ &vop_remove_desc, genfs_eopnotsupp },		/* remove */
+	{ &vop_link_desc, genfs_abortop },		/* link */
+	{ &vop_rename_desc, genfs_eopnotsupp },		/* rename */
+	{ &vop_mkdir_desc, genfs_eopnotsupp },		/* mkdir */
+	{ &vop_rmdir_desc, genfs_eopnotsupp },		/* rmdir */
+	{ &vop_symlink_desc, genfs_abortop },		/* symlink */
 	{ &vop_readdir_desc, ptyfs_readdir },		/* readdir */
-	{ &vop_readlink_desc, ptyfs_readlink },		/* readlink */
-	{ &vop_abortop_desc, ptyfs_abortop },		/* abortop */
+	{ &vop_readlink_desc, genfs_eopnotsupp },	/* readlink */
+	{ &vop_abortop_desc, genfs_abortop },		/* abortop */
 	{ &vop_inactive_desc, ptyfs_inactive },		/* inactive */
 	{ &vop_reclaim_desc, ptyfs_reclaim },		/* reclaim */
-	{ &vop_lock_desc, ptyfs_lock },			/* lock */
-	{ &vop_unlock_desc, ptyfs_unlock },		/* unlock */
-	{ &vop_bmap_desc, ptyfs_bmap },			/* bmap */
-	{ &vop_strategy_desc, ptyfs_strategy },		/* strategy */
+	{ &vop_lock_desc, genfs_lock },			/* lock */
+	{ &vop_unlock_desc, genfs_unlock },		/* unlock */
+	{ &vop_bmap_desc, genfs_eopnotsupp },		/* bmap */
+	{ &vop_strategy_desc, genfs_badop },		/* strategy */
 	{ &vop_print_desc, ptyfs_print },		/* print */
-	{ &vop_islocked_desc, ptyfs_islocked },		/* islocked */
+	{ &vop_islocked_desc, genfs_islocked },		/* islocked */
 	{ &vop_pathconf_desc, ptyfs_pathconf },		/* pathconf */
 	{ &vop_advlock_desc, ptyfs_advlock },		/* advlock */
-	{ &vop_bwrite_desc, ptyfs_bwrite },		/* bwrite */
-	{ &vop_putpages_desc, ptyfs_putpages },		/* putpages */
+	{ &vop_bwrite_desc, genfs_eopnotsupp },		/* bwrite */
+	{ &vop_putpages_desc, genfs_null_putpages },	/* putpages */
 	{ NULL, NULL }
 };
 const struct vnodeopv_desc ptyfs_vnodeop_opv_desc =

Index: src/sys/fs/tmpfs/tmpfs_fifoops.h
diff -u src/sys/fs/tmpfs/tmpfs_fifoops.h:1.8 src/sys/fs/tmpfs/tmpfs_fifoops.h:1.9
--- src/sys/fs/tmpfs/tmpfs_fifoops.h:1.8	Tue May 24 20:17:49 2011
+++ src/sys/fs/tmpfs/tmpfs_fifoops.h	Sun Jul 18 23:57:14 2021
@@ -1,4 +1,4 @@
-/*	$NetBSD: tmpfs_fifoops.h,v 1.8 2011/05/24 20:17:49 rmind Exp $	*/
+/*	$NetBSD: tmpfs_fifoops.h,v 1.9 2021/07/18 23:57:14 dholland Exp $	*/
 
 /*
  * Copyright (c) 2005 The NetBSD Foundation, Inc.
@@ -46,45 +46,8 @@
 
 extern int (**tmpfs_fifoop_p)(void *);
 
-#define	tmpfs_fifo_lookup	vn_fifo_bypass
-#define	tmpfs_fifo_create	vn_fifo_bypass
-#define	tmpfs_fifo_mknod	vn_fifo_bypass
-#define	tmpfs_fifo_open		vn_fifo_bypass
 int	tmpfs_fifo_close	(void *);
-#define	tmpfs_fifo_access	tmpfs_access
-#define	tmpfs_fifo_getattr	tmpfs_getattr
-#define	tmpfs_fifo_setattr	tmpfs_setattr
 int	tmpfs_fifo_read		(void *);
 int	tmpfs_fifo_write	(void *);
-#define	tmpfs_fifo_fcntl	tmpfs_fcntl
-#define	tmpfs_fifo_ioctl	vn_fifo_bypass
-#define	tmpfs_fifo_poll		vn_fifo_bypass
-#define	tmpfs_fifo_kqfilter	vn_fifo_bypass
-#define	tmpfs_fifo_revoke	vn_fifo_bypass
-#define	tmpfs_fifo_mmap		vn_fifo_bypass
-#define	tmpfs_fifo_fsync	vn_fifo_bypass
-#define	tmpfs_fifo_seek		vn_fifo_bypass
-#define	tmpfs_fifo_remove	vn_fifo_bypass
-#define	tmpfs_fifo_link		vn_fifo_bypass
-#define	tmpfs_fifo_rename	vn_fifo_bypass
-#define	tmpfs_fifo_mkdir	vn_fifo_bypass
-#define	tmpfs_fifo_rmdir	vn_fifo_bypass
-#define	tmpfs_fifo_symlink	vn_fifo_bypass
-#define	tmpfs_fifo_readdir	vn_fifo_bypass
-#define	tmpfs_fifo_readlink	vn_fifo_bypass
-#define	tmpfs_fifo_abortop	vn_fifo_bypass
-#define	tmpfs_fifo_inactive	tmpfs_inactive
-#define	tmpfs_fifo_reclaim	tmpfs_reclaim
-#define	tmpfs_fifo_lock		tmpfs_lock
-#define	tmpfs_fifo_unlock	tmpfs_unlock
-#define	tmpfs_fifo_bmap		vn_fifo_bypass
-#define	tmpfs_fifo_strategy	vn_fifo_bypass
-#define	tmpfs_fifo_print	tmpfs_print
-#define	tmpfs_fifo_pathconf	vn_fifo_bypass
-#define	tmpfs_fifo_islocked	tmpfs_islocked
-#define	tmpfs_fifo_advlock	vn_fifo_bypass
-#define	tmpfs_fifo_bwrite	tmpfs_bwrite
-#define	tmpfs_fifo_getpages	genfs_badop
-#define	tmpfs_fifo_putpages	vn_fifo_bypass
 
 #endif /* _FS_TMPFS_TMPFS_FIFOOPS_H_ */
Index: src/sys/fs/tmpfs/tmpfs_specops.h
diff -u src/sys/fs/tmpfs/tmpfs_specops.h:1.8 src/sys/fs/tmpfs/tmpfs_specops.h:1.9
--- src/sys/fs/tmpfs/tmpfs_specops.h:1.8	Tue May 24 20:17:49 2011
+++ src/sys/fs/tmpfs/tmpfs_specops.h	Sun Jul 18 23:57:14 2021
@@ -1,4 +1,4 @@
-/*	$NetBSD: tmpfs_specops.h,v 1.8 2011/05/24 20:17:49 rmind Exp $	*/
+/*	$NetBSD: tmpfs_specops.h,v 1.9 2021/07/18 23:57:14 dholland Exp $	*/
 
 /*
  * Copyright (c) 2005 The NetBSD Foundation, Inc.
@@ -46,45 +46,8 @@
 
 extern int (**tmpfs_specop_p)(void *);
 
-#define	tmpfs_spec_lookup	spec_lookup
-#define	tmpfs_spec_create	spec_create
-#define	tmpfs_spec_mknod	spec_mknod
-#define	tmpfs_spec_open		spec_open
 int	tmpfs_spec_close	(void *);
-#define	tmpfs_spec_access	tmpfs_access
-#define	tmpfs_spec_getattr	tmpfs_getattr
-#define	tmpfs_spec_setattr	tmpfs_setattr
 int	tmpfs_spec_read		(void *);
 int	tmpfs_spec_write	(void *);
-#define	tmpfs_spec_fcntl	tmpfs_fcntl
-#define	tmpfs_spec_ioctl	spec_ioctl
-#define	tmpfs_spec_poll		spec_poll
-#define	tmpfs_spec_kqfilter	spec_kqfilter
-#define	tmpfs_spec_revoke	spec_revoke
-#define	tmpfs_spec_mmap		spec_mmap
-#define	tmpfs_spec_fsync	spec_fsync
-#define	tmpfs_spec_seek		spec_seek
-#define	tmpfs_spec_remove	spec_remove
-#define	tmpfs_spec_link		spec_link
-#define	tmpfs_spec_rename	spec_rename
-#define	tmpfs_spec_mkdir	spec_mkdir
-#define	tmpfs_spec_rmdir	spec_rmdir
-#define	tmpfs_spec_symlink	spec_symlink
-#define	tmpfs_spec_readdir	spec_readdir
-#define	tmpfs_spec_readlink	spec_readlink
-#define	tmpfs_spec_abortop	spec_abortop
-#define	tmpfs_spec_inactive	tmpfs_inactive
-#define	tmpfs_spec_reclaim	tmpfs_reclaim
-#define	tmpfs_spec_lock		tmpfs_lock
-#define	tmpfs_spec_unlock	tmpfs_unlock
-#define	tmpfs_spec_bmap		spec_bmap
-#define	tmpfs_spec_strategy	spec_strategy
-#define	tmpfs_spec_print	tmpfs_print
-#define	tmpfs_spec_pathconf	spec_pathconf
-#define	tmpfs_spec_islocked	tmpfs_islocked
-#define	tmpfs_spec_advlock	spec_advlock
-#define	tmpfs_spec_bwrite	vn_bwrite
-#define	tmpfs_spec_getpages	spec_getpages
-#define	tmpfs_spec_putpages	spec_putpages
 
 #endif /* _FS_TMPFS_TMPFS_SPECOPS_H_ */

Index: src/sys/fs/tmpfs/tmpfs_vnops.c
diff -u src/sys/fs/tmpfs/tmpfs_vnops.c:1.146 src/sys/fs/tmpfs/tmpfs_vnops.c:1.147
--- src/sys/fs/tmpfs/tmpfs_vnops.c:1.146	Tue Jun 29 22:34:07 2021
+++ src/sys/fs/tmpfs/tmpfs_vnops.c	Sun Jul 18 23:57:14 2021
@@ -1,4 +1,4 @@
-/*	$NetBSD: tmpfs_vnops.c,v 1.146 2021/06/29 22:34:07 dholland Exp $	*/
+/*	$NetBSD: tmpfs_vnops.c,v 1.147 2021/07/18 23:57:14 dholland Exp $	*/
 
 /*
  * Copyright (c) 2005, 2006, 2007, 2020 The NetBSD Foundation, Inc.
@@ -35,7 +35,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: tmpfs_vnops.c,v 1.146 2021/06/29 22:34:07 dholland Exp $");
+__KERNEL_RCSID(0, "$NetBSD: tmpfs_vnops.c,v 1.147 2021/07/18 23:57:14 dholland Exp $");
 
 #include <sys/param.h>
 #include <sys/dirent.h>
@@ -78,14 +78,14 @@ const struct vnodeopv_entry_desc tmpfs_v
 	{ &vop_write_desc,		tmpfs_write },
 	{ &vop_fallocate_desc,		genfs_eopnotsupp },
 	{ &vop_fdiscard_desc,		genfs_eopnotsupp },
-	{ &vop_ioctl_desc,		tmpfs_ioctl },
-	{ &vop_fcntl_desc,		tmpfs_fcntl },
-	{ &vop_poll_desc,		tmpfs_poll },
-	{ &vop_kqfilter_desc,		tmpfs_kqfilter },
-	{ &vop_revoke_desc,		tmpfs_revoke },
-	{ &vop_mmap_desc,		tmpfs_mmap },
+	{ &vop_ioctl_desc,		genfs_enoioctl },
+	{ &vop_fcntl_desc,		genfs_fcntl },
+	{ &vop_poll_desc,		genfs_poll },
+	{ &vop_kqfilter_desc,		genfs_kqfilter },
+	{ &vop_revoke_desc,		genfs_revoke },
+	{ &vop_mmap_desc,		genfs_mmap },
 	{ &vop_fsync_desc,		tmpfs_fsync },
-	{ &vop_seek_desc,		tmpfs_seek },
+	{ &vop_seek_desc,		genfs_seek },
 	{ &vop_remove_desc,		tmpfs_remove },
 	{ &vop_link_desc,		tmpfs_link },
 	{ &vop_rename_desc,		tmpfs_rename },
@@ -94,18 +94,18 @@ const struct vnodeopv_entry_desc tmpfs_v
 	{ &vop_symlink_desc,		tmpfs_symlink },
 	{ &vop_readdir_desc,		tmpfs_readdir },
 	{ &vop_readlink_desc,		tmpfs_readlink },
-	{ &vop_abortop_desc,		tmpfs_abortop },
+	{ &vop_abortop_desc,		genfs_abortop },
 	{ &vop_inactive_desc,		tmpfs_inactive },
 	{ &vop_reclaim_desc,		tmpfs_reclaim },
-	{ &vop_lock_desc,		tmpfs_lock },
-	{ &vop_unlock_desc,		tmpfs_unlock },
-	{ &vop_bmap_desc,		tmpfs_bmap },
-	{ &vop_strategy_desc,		tmpfs_strategy },
+	{ &vop_lock_desc,		genfs_lock },
+	{ &vop_unlock_desc,		genfs_unlock },
+	{ &vop_bmap_desc,		genfs_eopnotsupp },
+	{ &vop_strategy_desc,		genfs_eopnotsupp },
 	{ &vop_print_desc,		tmpfs_print },
 	{ &vop_pathconf_desc,		tmpfs_pathconf },
-	{ &vop_islocked_desc,		tmpfs_islocked },
+	{ &vop_islocked_desc,		genfs_islocked },
 	{ &vop_advlock_desc,		tmpfs_advlock },
-	{ &vop_bwrite_desc,		tmpfs_bwrite },
+	{ &vop_bwrite_desc,		genfs_nullop },
 	{ &vop_getpages_desc,		tmpfs_getpages },
 	{ &vop_putpages_desc,		tmpfs_putpages },
 	{ &vop_whiteout_desc,		tmpfs_whiteout },

Index: src/sys/fs/tmpfs/tmpfs_vnops.h
diff -u src/sys/fs/tmpfs/tmpfs_vnops.h:1.13 src/sys/fs/tmpfs/tmpfs_vnops.h:1.14
--- src/sys/fs/tmpfs/tmpfs_vnops.h:1.13	Tue May 24 20:17:49 2011
+++ src/sys/fs/tmpfs/tmpfs_vnops.h	Sun Jul 18 23:57:14 2021
@@ -1,4 +1,4 @@
-/*	$NetBSD: tmpfs_vnops.h,v 1.13 2011/05/24 20:17:49 rmind Exp $	*/
+/*	$NetBSD: tmpfs_vnops.h,v 1.14 2021/07/18 23:57:14 dholland Exp $	*/
 
 /*
  * Copyright (c) 2005, 2006 The NetBSD Foundation, Inc.
@@ -55,14 +55,7 @@ int	tmpfs_getattr		(void *);
 int	tmpfs_setattr		(void *);
 int	tmpfs_read		(void *);
 int	tmpfs_write		(void *);
-#define	tmpfs_fcntl		genfs_fcntl
-#define	tmpfs_ioctl		genfs_enoioctl
-#define	tmpfs_poll		genfs_poll
-#define	tmpfs_kqfilter		genfs_kqfilter
-#define	tmpfs_revoke		genfs_revoke
-#define	tmpfs_mmap		genfs_mmap
 int	tmpfs_fsync		(void *);
-#define	tmpfs_seek		genfs_seek
 int	tmpfs_remove		(void *);
 int	tmpfs_link		(void *);
 int	tmpfs_rename		(void *);
@@ -71,18 +64,11 @@ int	tmpfs_rmdir		(void *);
 int	tmpfs_symlink		(void *);
 int	tmpfs_readdir		(void *);
 int	tmpfs_readlink		(void *);
-#define	tmpfs_abortop		genfs_abortop
 int	tmpfs_inactive		(void *);
 int	tmpfs_reclaim		(void *);
-#define	tmpfs_lock		genfs_lock
-#define	tmpfs_unlock		genfs_unlock
-#define	tmpfs_bmap		genfs_eopnotsupp
-#define	tmpfs_strategy		genfs_eopnotsupp
 int	tmpfs_print		(void *);
 int	tmpfs_pathconf		(void *);
-#define	tmpfs_islocked		genfs_islocked
 int	tmpfs_advlock		(void *);
-#define	tmpfs_bwrite		genfs_nullop
 int	tmpfs_getpages		(void *);
 int	tmpfs_putpages		(void *);
 int	tmpfs_whiteout		(void *);

Index: src/sys/miscfs/deadfs/dead_vnops.c
diff -u src/sys/miscfs/deadfs/dead_vnops.c:1.64 src/sys/miscfs/deadfs/dead_vnops.c:1.65
--- src/sys/miscfs/deadfs/dead_vnops.c:1.64	Tue Jun 29 22:34:08 2021
+++ src/sys/miscfs/deadfs/dead_vnops.c	Sun Jul 18 23:57:14 2021
@@ -1,4 +1,4 @@
-/*	$NetBSD: dead_vnops.c,v 1.64 2021/06/29 22:34:08 dholland Exp $	*/
+/*	$NetBSD: dead_vnops.c,v 1.65 2021/07/18 23:57:14 dholland Exp $	*/
 
 /*
  * Copyright (c) 1989, 1993
@@ -32,7 +32,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: dead_vnops.c,v 1.64 2021/06/29 22:34:08 dholland Exp $");
+__KERNEL_RCSID(0, "$NetBSD: dead_vnops.c,v 1.65 2021/07/18 23:57:14 dholland Exp $");
 
 #include <sys/param.h>
 #include <sys/systm.h>
@@ -48,30 +48,20 @@ __KERNEL_RCSID(0, "$NetBSD: dead_vnops.c
 /*
  * Prototypes for dead operations on vnodes.
  */
-#define	dead_bwrite	vn_bwrite
 int	dead_lookup(void *);
 int	dead_open(void *);
-#define dead_close	genfs_nullop
 int	dead_read(void *);
 int	dead_write(void *);
-#define dead_fcntl	genfs_nullop
 int	dead_ioctl(void *);
 int	dead_poll(void *);
 int	dead_remove(void *);
 int	dead_link(void *);
 int	dead_rename(void *);
 int	dead_rmdir(void *);
-#define dead_fsync	genfs_nullop
-#define dead_seek	genfs_nullop
 int	dead_inactive(void *);
-#define dead_reclaim	genfs_nullop
-#define dead_lock	genfs_deadlock
-#define dead_unlock	genfs_deadunlock
 int	dead_bmap(void *);
 int	dead_strategy(void *);
 int	dead_print(void *);
-#define dead_islocked	genfs_deadislocked
-#define dead_revoke	genfs_nullop
 int	dead_getpages(void *);
 int	dead_putpages(void *);
 
@@ -81,33 +71,33 @@ int (**dead_vnodeop_p)(void *);
 
 const struct vnodeopv_entry_desc dead_vnodeop_entries[] = {
 	{ &vop_default_desc, dead_default_error },
-	{ &vop_bwrite_desc, dead_bwrite },		/* bwrite */
+	{ &vop_bwrite_desc, vn_bwrite },		/* bwrite */
 	{ &vop_parsepath_desc, genfs_parsepath },	/* parsepath */
 	{ &vop_lookup_desc, dead_lookup },		/* lookup */
 	{ &vop_open_desc, dead_open },			/* open */
-	{ &vop_close_desc, dead_close },		/* close */
+	{ &vop_close_desc, genfs_nullop },		/* close */
 	{ &vop_read_desc, dead_read },			/* read */
 	{ &vop_write_desc, dead_write },		/* write */
 	{ &vop_fallocate_desc, genfs_eopnotsupp },	/* fallocate */
 	{ &vop_fdiscard_desc, genfs_eopnotsupp },	/* fdiscard */
-	{ &vop_fcntl_desc, dead_fcntl },		/* fcntl */
+	{ &vop_fcntl_desc, genfs_nullop },		/* fcntl */
 	{ &vop_ioctl_desc, dead_ioctl },		/* ioctl */
 	{ &vop_poll_desc, dead_poll },			/* poll */
 	{ &vop_remove_desc, dead_remove },		/* remove */
 	{ &vop_link_desc, dead_link },			/* link */
 	{ &vop_rename_desc, dead_rename },		/* rename */
 	{ &vop_rmdir_desc, dead_rmdir },		/* rmdir */
-	{ &vop_fsync_desc, dead_fsync },		/* fsync */
-	{ &vop_seek_desc, dead_seek },			/* seek */
+	{ &vop_fsync_desc, genfs_nullop },		/* fsync */
+	{ &vop_seek_desc, genfs_nullop },		/* seek */
 	{ &vop_inactive_desc, dead_inactive },		/* inactive */
-	{ &vop_reclaim_desc, dead_reclaim },		/* reclaim */
-	{ &vop_lock_desc, dead_lock },			/* lock */
-	{ &vop_unlock_desc, dead_unlock },		/* unlock */
+	{ &vop_reclaim_desc, genfs_nullop },		/* reclaim */
+	{ &vop_lock_desc, genfs_deadlock },		/* lock */
+	{ &vop_unlock_desc, genfs_deadunlock },		/* unlock */
 	{ &vop_bmap_desc, dead_bmap },			/* bmap */
 	{ &vop_strategy_desc, dead_strategy },		/* strategy */
 	{ &vop_print_desc, dead_print },		/* print */
-	{ &vop_islocked_desc, dead_islocked },		/* islocked */
-	{ &vop_revoke_desc, dead_revoke },		/* revoke */
+	{ &vop_islocked_desc, genfs_deadislocked },	/* islocked */
+	{ &vop_revoke_desc, genfs_nullop },		/* revoke */
 	{ &vop_getpages_desc, dead_getpages },		/* getpages */
 	{ &vop_putpages_desc, dead_putpages },		/* putpages */
 	{ NULL, NULL }

Index: src/sys/miscfs/procfs/procfs_vnops.c
diff -u src/sys/miscfs/procfs/procfs_vnops.c:1.217 src/sys/miscfs/procfs/procfs_vnops.c:1.218
--- src/sys/miscfs/procfs/procfs_vnops.c:1.217	Tue Jun 29 22:34:09 2021
+++ src/sys/miscfs/procfs/procfs_vnops.c	Sun Jul 18 23:57:14 2021
@@ -1,4 +1,4 @@
-/*	$NetBSD: procfs_vnops.c,v 1.217 2021/06/29 22:34:09 dholland Exp $	*/
+/*	$NetBSD: procfs_vnops.c,v 1.218 2021/07/18 23:57:14 dholland Exp $	*/
 
 /*-
  * Copyright (c) 2006, 2007, 2008, 2020 The NetBSD Foundation, Inc.
@@ -105,7 +105,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: procfs_vnops.c,v 1.217 2021/06/29 22:34:09 dholland Exp $");
+__KERNEL_RCSID(0, "$NetBSD: procfs_vnops.c,v 1.218 2021/07/18 23:57:14 dholland Exp $");
 
 #include <sys/param.h>
 #include <sys/atomic.h>
@@ -208,44 +208,20 @@ static const int nproc_root_targets =
     sizeof(proc_root_targets) / sizeof(proc_root_targets[0]);
 
 int	procfs_lookup(void *);
-#define	procfs_create	genfs_eopnotsupp
-#define	procfs_mknod	genfs_eopnotsupp
 int	procfs_open(void *);
 int	procfs_close(void *);
 int	procfs_access(void *);
 int	procfs_getattr(void *);
 int	procfs_setattr(void *);
-#define	procfs_read	procfs_rw
-#define	procfs_write	procfs_rw
-#define	procfs_fcntl	genfs_fcntl
-#define	procfs_ioctl	genfs_enoioctl
-#define	procfs_poll	genfs_poll
-#define	procfs_kqfilter	genfs_kqfilter
-#define	procfs_revoke	genfs_revoke
-#define	procfs_fsync	genfs_nullop
-#define	procfs_seek	genfs_nullop
-#define	procfs_remove	genfs_eopnotsupp
 int	procfs_link(void *);
-#define	procfs_rename	genfs_eopnotsupp
-#define	procfs_mkdir	genfs_eopnotsupp
-#define	procfs_rmdir	genfs_eopnotsupp
 int	procfs_symlink(void *);
 int	procfs_readdir(void *);
 int	procfs_readlink(void *);
-#define	procfs_abortop	genfs_abortop
 int	procfs_inactive(void *);
 int	procfs_reclaim(void *);
-#define	procfs_lock	genfs_lock
-#define	procfs_unlock	genfs_unlock
-#define	procfs_bmap	genfs_eopnotsupp
-#define	procfs_strategy	genfs_badop
 int	procfs_print(void *);
 int	procfs_pathconf(void *);
-#define	procfs_islocked	genfs_islocked
-#define	procfs_advlock	genfs_einval
-#define	procfs_bwrite	genfs_eopnotsupp
 int	procfs_getpages(void *);
-#define procfs_putpages	genfs_null_putpages
 
 static int atoi(const char *, size_t);
 
@@ -257,46 +233,46 @@ const struct vnodeopv_entry_desc procfs_
 	{ &vop_default_desc, vn_default_error },
 	{ &vop_parsepath_desc, genfs_parsepath },	/* parsepath */
 	{ &vop_lookup_desc, procfs_lookup },		/* lookup */
-	{ &vop_create_desc, procfs_create },		/* create */
-	{ &vop_mknod_desc, procfs_mknod },		/* mknod */
+	{ &vop_create_desc, genfs_eopnotsupp },		/* create */
+	{ &vop_mknod_desc, genfs_eopnotsupp },		/* mknod */
 	{ &vop_open_desc, procfs_open },		/* open */
 	{ &vop_close_desc, procfs_close },		/* close */
 	{ &vop_access_desc, procfs_access },		/* access */
 	{ &vop_accessx_desc, genfs_accessx },		/* accessx */
 	{ &vop_getattr_desc, procfs_getattr },		/* getattr */
 	{ &vop_setattr_desc, procfs_setattr },		/* setattr */
-	{ &vop_read_desc, procfs_read },		/* read */
-	{ &vop_write_desc, procfs_write },		/* write */
+	{ &vop_read_desc, procfs_rw },			/* read */
+	{ &vop_write_desc, procfs_rw },			/* write */
 	{ &vop_fallocate_desc, genfs_eopnotsupp },	/* fallocate */
 	{ &vop_fdiscard_desc, genfs_eopnotsupp },	/* fdiscard */
-	{ &vop_fcntl_desc, procfs_fcntl },		/* fcntl */
-	{ &vop_ioctl_desc, procfs_ioctl },		/* ioctl */
-	{ &vop_poll_desc, procfs_poll },		/* poll */
-	{ &vop_kqfilter_desc, procfs_kqfilter },	/* kqfilter */
-	{ &vop_revoke_desc, procfs_revoke },		/* revoke */
-	{ &vop_fsync_desc, procfs_fsync },		/* fsync */
-	{ &vop_seek_desc, procfs_seek },		/* seek */
-	{ &vop_remove_desc, procfs_remove },		/* remove */
+	{ &vop_fcntl_desc, genfs_fcntl },		/* fcntl */
+	{ &vop_ioctl_desc, genfs_enoioctl },		/* ioctl */
+	{ &vop_poll_desc, genfs_poll },			/* poll */
+	{ &vop_kqfilter_desc, genfs_kqfilter },		/* kqfilter */
+	{ &vop_revoke_desc, genfs_revoke },		/* revoke */
+	{ &vop_fsync_desc, genfs_nullop },		/* fsync */
+	{ &vop_seek_desc, genfs_nullop },		/* seek */
+	{ &vop_remove_desc, genfs_eopnotsupp },		/* remove */
 	{ &vop_link_desc, procfs_link },		/* link */
-	{ &vop_rename_desc, procfs_rename },		/* rename */
-	{ &vop_mkdir_desc, procfs_mkdir },		/* mkdir */
-	{ &vop_rmdir_desc, procfs_rmdir },		/* rmdir */
+	{ &vop_rename_desc, genfs_eopnotsupp },		/* rename */
+	{ &vop_mkdir_desc, genfs_eopnotsupp },		/* mkdir */
+	{ &vop_rmdir_desc, genfs_eopnotsupp },		/* rmdir */
 	{ &vop_symlink_desc, procfs_symlink },		/* symlink */
 	{ &vop_readdir_desc, procfs_readdir },		/* readdir */
 	{ &vop_readlink_desc, procfs_readlink },	/* readlink */
-	{ &vop_abortop_desc, procfs_abortop },		/* abortop */
+	{ &vop_abortop_desc, genfs_abortop },		/* abortop */
 	{ &vop_inactive_desc, procfs_inactive },	/* inactive */
 	{ &vop_reclaim_desc, procfs_reclaim },		/* reclaim */
-	{ &vop_lock_desc, procfs_lock },		/* lock */
-	{ &vop_unlock_desc, procfs_unlock },		/* unlock */
-	{ &vop_bmap_desc, procfs_bmap },		/* bmap */
-	{ &vop_strategy_desc, procfs_strategy },	/* strategy */
+	{ &vop_lock_desc, genfs_lock },			/* lock */
+	{ &vop_unlock_desc, genfs_unlock },		/* unlock */
+	{ &vop_bmap_desc, genfs_eopnotsupp },		/* bmap */
+	{ &vop_strategy_desc, genfs_badop },		/* strategy */
 	{ &vop_print_desc, procfs_print },		/* print */
-	{ &vop_islocked_desc, procfs_islocked },	/* islocked */
+	{ &vop_islocked_desc, genfs_islocked },		/* islocked */
 	{ &vop_pathconf_desc, procfs_pathconf },	/* pathconf */
-	{ &vop_advlock_desc, procfs_advlock },		/* advlock */
+	{ &vop_advlock_desc, genfs_einval },		/* advlock */
 	{ &vop_getpages_desc, procfs_getpages },	/* getpages */
-	{ &vop_putpages_desc, procfs_putpages },	/* putpages */
+	{ &vop_putpages_desc, genfs_null_putpages },	/* putpages */
 	{ NULL, NULL }
 };
 const struct vnodeopv_desc procfs_vnodeop_opv_desc =

Index: src/sys/miscfs/specfs/spec_vnops.c
diff -u src/sys/miscfs/specfs/spec_vnops.c:1.182 src/sys/miscfs/specfs/spec_vnops.c:1.183
--- src/sys/miscfs/specfs/spec_vnops.c:1.182	Tue Jun 29 22:34:09 2021
+++ src/sys/miscfs/specfs/spec_vnops.c	Sun Jul 18 23:57:14 2021
@@ -1,4 +1,4 @@
-/*	$NetBSD: spec_vnops.c,v 1.182 2021/06/29 22:34:09 dholland Exp $	*/
+/*	$NetBSD: spec_vnops.c,v 1.183 2021/07/18 23:57:14 dholland Exp $	*/
 
 /*-
  * Copyright (c) 2008 The NetBSD Foundation, Inc.
@@ -58,7 +58,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: spec_vnops.c,v 1.182 2021/06/29 22:34:09 dholland Exp $");
+__KERNEL_RCSID(0, "$NetBSD: spec_vnops.c,v 1.183 2021/07/18 23:57:14 dholland Exp $");
 
 #include <sys/param.h>
 #include <sys/proc.h>
@@ -117,48 +117,48 @@ const struct vnodeopv_entry_desc spec_vn
 	{ &vop_default_desc, vn_default_error },
 	{ &vop_parsepath_desc, genfs_parsepath },	/* parsepath */
 	{ &vop_lookup_desc, spec_lookup },		/* lookup */
-	{ &vop_create_desc, spec_create },		/* create */
-	{ &vop_mknod_desc, spec_mknod },		/* mknod */
+	{ &vop_create_desc, genfs_badop },		/* create */
+	{ &vop_mknod_desc, genfs_badop },		/* mknod */
 	{ &vop_open_desc, spec_open },			/* open */
 	{ &vop_close_desc, spec_close },		/* close */
-	{ &vop_access_desc, spec_access },		/* access */
-	{ &vop_accessx_desc, genfs_accessx },		/* accessx */
-	{ &vop_getattr_desc, spec_getattr },		/* getattr */
-	{ &vop_setattr_desc, spec_setattr },		/* setattr */
+	{ &vop_access_desc, genfs_ebadf },		/* access */
+	{ &vop_accessx_desc, genfs_ebadf },		/* accessx */
+	{ &vop_getattr_desc, genfs_ebadf },		/* getattr */
+	{ &vop_setattr_desc, genfs_ebadf },		/* setattr */
 	{ &vop_read_desc, spec_read },			/* read */
 	{ &vop_write_desc, spec_write },		/* write */
-	{ &vop_fallocate_desc, spec_fallocate },	/* fallocate */
+	{ &vop_fallocate_desc, genfs_eopnotsupp },	/* fallocate */
 	{ &vop_fdiscard_desc, spec_fdiscard },		/* fdiscard */
-	{ &vop_fcntl_desc, spec_fcntl },		/* fcntl */
+	{ &vop_fcntl_desc, genfs_fcntl },		/* fcntl */
 	{ &vop_ioctl_desc, spec_ioctl },		/* ioctl */
 	{ &vop_poll_desc, spec_poll },			/* poll */
 	{ &vop_kqfilter_desc, spec_kqfilter },		/* kqfilter */
-	{ &vop_revoke_desc, spec_revoke },		/* revoke */
+	{ &vop_revoke_desc, genfs_revoke },		/* revoke */
 	{ &vop_mmap_desc, spec_mmap },			/* mmap */
 	{ &vop_fsync_desc, spec_fsync },		/* fsync */
 	{ &vop_seek_desc, spec_seek },			/* seek */
-	{ &vop_remove_desc, spec_remove },		/* remove */
-	{ &vop_link_desc, spec_link },			/* link */
-	{ &vop_rename_desc, spec_rename },		/* rename */
-	{ &vop_mkdir_desc, spec_mkdir },		/* mkdir */
-	{ &vop_rmdir_desc, spec_rmdir },		/* rmdir */
-	{ &vop_symlink_desc, spec_symlink },		/* symlink */
-	{ &vop_readdir_desc, spec_readdir },		/* readdir */
-	{ &vop_readlink_desc, spec_readlink },		/* readlink */
-	{ &vop_abortop_desc, spec_abortop },		/* abortop */
+	{ &vop_remove_desc, genfs_badop },		/* remove */
+	{ &vop_link_desc, genfs_badop },		/* link */
+	{ &vop_rename_desc, genfs_badop },		/* rename */
+	{ &vop_mkdir_desc, genfs_badop },		/* mkdir */
+	{ &vop_rmdir_desc, genfs_badop },		/* rmdir */
+	{ &vop_symlink_desc, genfs_badop },		/* symlink */
+	{ &vop_readdir_desc, genfs_badop },		/* readdir */
+	{ &vop_readlink_desc, genfs_badop },		/* readlink */
+	{ &vop_abortop_desc, genfs_badop },		/* abortop */
 	{ &vop_inactive_desc, spec_inactive },		/* inactive */
 	{ &vop_reclaim_desc, spec_reclaim },		/* reclaim */
-	{ &vop_lock_desc, spec_lock },			/* lock */
-	{ &vop_unlock_desc, spec_unlock },		/* unlock */
+	{ &vop_lock_desc, genfs_nolock },		/* lock */
+	{ &vop_unlock_desc, genfs_nounlock },		/* unlock */
 	{ &vop_bmap_desc, spec_bmap },			/* bmap */
 	{ &vop_strategy_desc, spec_strategy },		/* strategy */
 	{ &vop_print_desc, spec_print },		/* print */
-	{ &vop_islocked_desc, spec_islocked },		/* islocked */
+	{ &vop_islocked_desc, genfs_noislocked },	/* islocked */
 	{ &vop_pathconf_desc, spec_pathconf },		/* pathconf */
 	{ &vop_advlock_desc, spec_advlock },		/* advlock */
-	{ &vop_bwrite_desc, spec_bwrite },		/* bwrite */
-	{ &vop_getpages_desc, spec_getpages },		/* getpages */
-	{ &vop_putpages_desc, spec_putpages },		/* putpages */
+	{ &vop_bwrite_desc, vn_bwrite },		/* bwrite */
+	{ &vop_getpages_desc, genfs_getpages },		/* getpages */
+	{ &vop_putpages_desc, genfs_putpages },		/* putpages */
 	{ NULL, NULL }
 };
 const struct vnodeopv_desc spec_vnodeop_opv_desc =

Index: src/sys/miscfs/specfs/specdev.h
diff -u src/sys/miscfs/specfs/specdev.h:1.45 src/sys/miscfs/specfs/specdev.h:1.46
--- src/sys/miscfs/specfs/specdev.h:1.45	Sun Jul 18 23:56:14 2021
+++ src/sys/miscfs/specfs/specdev.h	Sun Jul 18 23:57:15 2021
@@ -1,4 +1,4 @@
-/*	$NetBSD: specdev.h,v 1.45 2021/07/18 23:56:14 dholland Exp $	*/
+/*	$NetBSD: specdev.h,v 1.46 2021/07/18 23:57:15 dholland Exp $	*/
 
 /*-
  * Copyright (c) 2008 The NetBSD Foundation, Inc.
@@ -109,48 +109,24 @@ struct	buf;
 struct	uio;
 
 int	spec_lookup(void *);
-#define	spec_create	genfs_badop
-#define	spec_whiteout	genfs_badop
-#define	spec_mknod	genfs_badop
 int	spec_open(void *);
 int	spec_close(void *);
-#define	spec_access	genfs_ebadf
-#define	spec_getattr	genfs_ebadf
-#define	spec_setattr	genfs_ebadf
 int	spec_read(void *);
 int	spec_write(void *);
-#define spec_fallocate	genfs_eopnotsupp
 int	spec_fdiscard(void *);
-#define spec_fcntl	genfs_fcntl
 int	spec_ioctl(void *);
 int	spec_poll(void *);
 int	spec_kqfilter(void *);
-#define spec_revoke	genfs_revoke
 int	spec_mmap(void *);
 int	spec_fsync(void *);
 #define	spec_seek	genfs_nullop		/* XXX should query device */
-#define	spec_remove	genfs_badop
-#define	spec_link	genfs_badop
-#define	spec_rename	genfs_badop
-#define	spec_mkdir	genfs_badop
-#define	spec_rmdir	genfs_badop
-#define	spec_symlink	genfs_badop
-#define	spec_readdir	genfs_badop
-#define	spec_readlink	genfs_badop
-#define	spec_abortop	genfs_badop
 int	spec_inactive(void *);
 int	spec_reclaim(void *);
-#define	spec_lock	genfs_nolock
-#define	spec_unlock	genfs_nounlock
 int	spec_bmap(void *);
 int	spec_strategy(void *);
 int	spec_print(void *);
-#define	spec_islocked	genfs_noislocked
 int	spec_pathconf(void *);
 int	spec_advlock(void *);
-#define	spec_bwrite	vn_bwrite
-#define	spec_getpages	genfs_getpages
-#define	spec_putpages	genfs_putpages
 
 /*
  * This macro provides an initializer list for the fs-independent part

Index: src/sys/nfs/nfs_vnops.c
diff -u src/sys/nfs/nfs_vnops.c:1.319 src/sys/nfs/nfs_vnops.c:1.320
--- src/sys/nfs/nfs_vnops.c:1.319	Sun Jul 18 23:56:14 2021
+++ src/sys/nfs/nfs_vnops.c	Sun Jul 18 23:57:15 2021
@@ -1,4 +1,4 @@
-/*	$NetBSD: nfs_vnops.c,v 1.319 2021/07/18 23:56:14 dholland Exp $	*/
+/*	$NetBSD: nfs_vnops.c,v 1.320 2021/07/18 23:57:15 dholland Exp $	*/
 
 /*
  * Copyright (c) 1989, 1993
@@ -39,7 +39,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: nfs_vnops.c,v 1.319 2021/07/18 23:56:14 dholland Exp $");
+__KERNEL_RCSID(0, "$NetBSD: nfs_vnops.c,v 1.320 2021/07/18 23:57:15 dholland Exp $");
 
 #ifdef _KERNEL_OPT
 #include "opt_nfs.h"
@@ -115,13 +115,13 @@ const struct vnodeopv_entry_desc nfsv2_v
 	{ &vop_fallocate_desc, genfs_eopnotsupp },	/* fallocate */
 	{ &vop_fdiscard_desc, genfs_eopnotsupp },	/* fdiscard */
 	{ &vop_fcntl_desc, genfs_fcntl },		/* fcntl */
-	{ &vop_ioctl_desc, nfs_ioctl },			/* ioctl */
-	{ &vop_poll_desc, nfs_poll },			/* poll */
+	{ &vop_ioctl_desc, genfs_enoioctl },		/* ioctl */
+	{ &vop_poll_desc, genfs_poll },			/* poll */
 	{ &vop_kqfilter_desc, nfs_kqfilter },		/* kqfilter */
-	{ &vop_revoke_desc, nfs_revoke },		/* revoke */
-	{ &vop_mmap_desc, nfs_mmap },			/* mmap */
+	{ &vop_revoke_desc, genfs_revoke },		/* revoke */
+	{ &vop_mmap_desc, genfs_mmap },			/* mmap */
 	{ &vop_fsync_desc, nfs_fsync },			/* fsync */
-	{ &vop_seek_desc, nfs_seek },			/* seek */
+	{ &vop_seek_desc, genfs_seek },			/* seek */
 	{ &vop_remove_desc, nfs_remove },		/* remove */
 	{ &vop_link_desc, nfs_link },			/* link */
 	{ &vop_rename_desc, nfs_rename },		/* rename */
@@ -130,15 +130,15 @@ const struct vnodeopv_entry_desc nfsv2_v
 	{ &vop_symlink_desc, nfs_symlink },		/* symlink */
 	{ &vop_readdir_desc, nfs_readdir },		/* readdir */
 	{ &vop_readlink_desc, nfs_readlink },		/* readlink */
-	{ &vop_abortop_desc, nfs_abortop },		/* abortop */
+	{ &vop_abortop_desc, genfs_abortop },		/* abortop */
 	{ &vop_inactive_desc, nfs_inactive },		/* inactive */
 	{ &vop_reclaim_desc, nfs_reclaim },		/* reclaim */
-	{ &vop_lock_desc, nfs_lock },			/* lock */
+	{ &vop_lock_desc, genfs_lock },			/* lock */
 	{ &vop_unlock_desc, nfs_unlock },		/* unlock */
 	{ &vop_bmap_desc, nfs_bmap },			/* bmap */
 	{ &vop_strategy_desc, nfs_strategy },		/* strategy */
 	{ &vop_print_desc, nfs_print },			/* print */
-	{ &vop_islocked_desc, nfs_islocked },		/* islocked */
+	{ &vop_islocked_desc, genfs_islocked },		/* islocked */
 	{ &vop_pathconf_desc, nfs_pathconf },		/* pathconf */
 	{ &vop_advlock_desc, nfs_advlock },		/* advlock */
 	{ &vop_bwrite_desc, genfs_badop },		/* bwrite */
@@ -167,11 +167,11 @@ const struct vnodeopv_entry_desc spec_nf
 	{ &vop_fsync_desc, spec_fsync },		/* fsync */
 	{ &vop_inactive_desc, nfs_inactive },		/* inactive */
 	{ &vop_reclaim_desc, nfs_reclaim },		/* reclaim */
-	{ &vop_lock_desc, nfs_lock },			/* lock */
+	{ &vop_lock_desc, genfs_lock },			/* lock */
 	{ &vop_unlock_desc, nfs_unlock },		/* unlock */
 	{ &vop_print_desc, nfs_print },			/* print */
-	{ &vop_islocked_desc, nfs_islocked },		/* islocked */
-	{ &vop_bwrite_desc, spec_bwrite },		/* bwrite */
+	{ &vop_islocked_desc, genfs_islocked },		/* islocked */
+	{ &vop_bwrite_desc, vn_bwrite },		/* bwrite */
 	{ NULL, NULL }
 };
 const struct vnodeopv_desc spec_nfsv2nodeop_opv_desc =
@@ -192,11 +192,11 @@ const struct vnodeopv_entry_desc fifo_nf
 	{ &vop_fsync_desc, nfs_fsync },			/* fsync */
 	{ &vop_inactive_desc, nfs_inactive },		/* inactive */
 	{ &vop_reclaim_desc, nfs_reclaim },		/* reclaim */
-	{ &vop_lock_desc, nfs_lock },			/* lock */
+	{ &vop_lock_desc, genfs_lock },			/* lock */
 	{ &vop_unlock_desc, nfs_unlock },		/* unlock */
 	{ &vop_strategy_desc, vn_fifo_bypass },		/* strategy */
 	{ &vop_print_desc, nfs_print },			/* print */
-	{ &vop_islocked_desc, nfs_islocked },		/* islocked */
+	{ &vop_islocked_desc, genfs_islocked },		/* islocked */
 	{ &vop_bwrite_desc, genfs_badop },		/* bwrite */
 	{ NULL, NULL }
 };

Index: src/sys/nfs/nfsnode.h
diff -u src/sys/nfs/nfsnode.h:1.74 src/sys/nfs/nfsnode.h:1.75
--- src/sys/nfs/nfsnode.h:1.74	Thu May 27 08:58:29 2021
+++ src/sys/nfs/nfsnode.h	Sun Jul 18 23:57:15 2021
@@ -1,4 +1,4 @@
-/*	 $NetBSD: nfsnode.h,v 1.74 2021/05/27 08:58:29 simonb Exp $	*/
+/*	 $NetBSD: nfsnode.h,v 1.75 2021/07/18 23:57:15 dholland Exp $	*/
 
 /*
  * Copyright (c) 1989, 1993
@@ -254,12 +254,7 @@ int	nfsspec_read(void *);
 int	nfsspec_write(void *);
 int	nfsfifo_read(void *);
 int	nfsfifo_write(void *);
-#define	nfs_ioctl	genfs_enoioctl
-#define	nfs_poll	genfs_poll
-#define nfs_revoke	genfs_revoke
-#define	nfs_mmap	genfs_mmap
 int	nfs_fsync(void *);
-#define nfs_seek	genfs_seek
 int	nfs_remove(void *);
 int	nfs_link(void *);
 int	nfs_rename(void *);
@@ -268,12 +263,9 @@ int	nfs_rmdir(void *);
 int	nfs_symlink(void *);
 int	nfs_readdir(void *);
 int	nfs_readlink(void *);
-#define	nfs_abortop	genfs_abortop
 int	nfs_inactive(void *);
 int	nfs_reclaim(void *);
-#define nfs_lock	genfs_lock
 int	nfs_unlock(void *);
-#define nfs_islocked	genfs_islocked
 int	nfs_bmap(void *);
 int	nfs_strategy(void *);
 int	nfs_print(void *);

Index: src/sys/ufs/ext2fs/ext2fs_vnops.c
diff -u src/sys/ufs/ext2fs/ext2fs_vnops.c:1.134 src/sys/ufs/ext2fs/ext2fs_vnops.c:1.135
--- src/sys/ufs/ext2fs/ext2fs_vnops.c:1.134	Sun Jul 18 23:56:14 2021
+++ src/sys/ufs/ext2fs/ext2fs_vnops.c	Sun Jul 18 23:57:15 2021
@@ -1,4 +1,4 @@
-/*	$NetBSD: ext2fs_vnops.c,v 1.134 2021/07/18 23:56:14 dholland Exp $	*/
+/*	$NetBSD: ext2fs_vnops.c,v 1.135 2021/07/18 23:57:15 dholland Exp $	*/
 
 /*
  * Copyright (c) 1982, 1986, 1989, 1993
@@ -65,7 +65,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: ext2fs_vnops.c,v 1.134 2021/07/18 23:56:14 dholland Exp $");
+__KERNEL_RCSID(0, "$NetBSD: ext2fs_vnops.c,v 1.135 2021/07/18 23:57:15 dholland Exp $");
 
 #include <sys/param.h>
 #include <sys/systm.h>
@@ -1108,14 +1108,14 @@ const struct vnodeopv_entry_desc ext2fs_
 	{ &vop_write_desc, ext2fs_write },		/* write */
 	{ &vop_fallocate_desc, genfs_eopnotsupp },	/* fallocate */
 	{ &vop_fdiscard_desc, genfs_eopnotsupp },	/* fdiscard */
-	{ &vop_ioctl_desc, ufs_ioctl },			/* ioctl */
-	{ &vop_fcntl_desc, ufs_fcntl },			/* fcntl */
-	{ &vop_poll_desc, ufs_poll },			/* poll */
+	{ &vop_ioctl_desc, genfs_enoioctl },		/* ioctl */
+	{ &vop_fcntl_desc, genfs_fcntl },		/* fcntl */
+	{ &vop_poll_desc, genfs_poll },			/* poll */
 	{ &vop_kqfilter_desc, genfs_kqfilter },		/* kqfilter */
-	{ &vop_revoke_desc, ufs_revoke },		/* revoke */
-	{ &vop_mmap_desc, ufs_mmap },			/* mmap */
+	{ &vop_revoke_desc, genfs_revoke },		/* revoke */
+	{ &vop_mmap_desc, genfs_mmap },			/* mmap */
 	{ &vop_fsync_desc, ext2fs_fsync },		/* fsync */
-	{ &vop_seek_desc, ufs_seek },			/* seek */
+	{ &vop_seek_desc, genfs_seek },			/* seek */
 	{ &vop_remove_desc, ext2fs_remove },		/* remove */
 	{ &vop_link_desc, ext2fs_link },		/* link */
 	{ &vop_rename_desc, ext2fs_rename },		/* rename */
@@ -1124,15 +1124,15 @@ const struct vnodeopv_entry_desc ext2fs_
 	{ &vop_symlink_desc, ext2fs_symlink },		/* symlink */
 	{ &vop_readdir_desc, ext2fs_readdir },		/* readdir */
 	{ &vop_readlink_desc, ext2fs_readlink },	/* readlink */
-	{ &vop_abortop_desc, ufs_abortop },		/* abortop */
+	{ &vop_abortop_desc, genfs_abortop },		/* abortop */
 	{ &vop_inactive_desc, ext2fs_inactive },	/* inactive */
 	{ &vop_reclaim_desc, ext2fs_reclaim },		/* reclaim */
-	{ &vop_lock_desc, ufs_lock },			/* lock */
-	{ &vop_unlock_desc, ufs_unlock },		/* unlock */
+	{ &vop_lock_desc, genfs_lock },			/* lock */
+	{ &vop_unlock_desc, genfs_unlock },		/* unlock */
 	{ &vop_bmap_desc, ext2fs_bmap },		/* bmap */
 	{ &vop_strategy_desc, ufs_strategy },		/* strategy */
 	{ &vop_print_desc, ufs_print },			/* print */
-	{ &vop_islocked_desc, ufs_islocked },		/* islocked */
+	{ &vop_islocked_desc, genfs_islocked },		/* islocked */
 	{ &vop_pathconf_desc, ufs_pathconf },		/* pathconf */
 	{ &vop_advlock_desc, ext2fs_advlock },		/* advlock */
 	{ &vop_bwrite_desc, vn_bwrite },		/* bwrite */
@@ -1158,14 +1158,14 @@ const struct vnodeopv_entry_desc ext2fs_
 	{ &vop_setattr_desc, ext2fs_setattr },		/* setattr */
 	{ &vop_read_desc, ufsspec_read },		/* read */
 	{ &vop_write_desc, ufsspec_write },		/* write */
-	{ &vop_fcntl_desc, ufs_fcntl },			/* fcntl */
+	{ &vop_fcntl_desc, genfs_fcntl },		/* fcntl */
 	{ &vop_fsync_desc, ext2fs_fsync },		/* fsync */
 	{ &vop_inactive_desc, ext2fs_inactive },	/* inactive */
 	{ &vop_reclaim_desc, ext2fs_reclaim },		/* reclaim */
-	{ &vop_lock_desc, ufs_lock },			/* lock */
-	{ &vop_unlock_desc, ufs_unlock },		/* unlock */
+	{ &vop_lock_desc, genfs_lock },			/* lock */
+	{ &vop_unlock_desc, genfs_unlock },		/* unlock */
 	{ &vop_print_desc, ufs_print },			/* print */
-	{ &vop_islocked_desc, ufs_islocked },		/* islocked */
+	{ &vop_islocked_desc, genfs_islocked },		/* islocked */
 	{ &vop_bwrite_desc, vn_bwrite },		/* bwrite */
 	{ &vop_getextattr_desc, ext2fs_getextattr },	/* getextattr */
 	{ &vop_setextattr_desc, ext2fs_setextattr },	/* setextattr */
@@ -1187,15 +1187,15 @@ const struct vnodeopv_entry_desc ext2fs_
 	{ &vop_setattr_desc, ext2fs_setattr },		/* setattr */
 	{ &vop_read_desc, ufsfifo_read },		/* read */
 	{ &vop_write_desc, ufsfifo_write },		/* write */
-	{ &vop_fcntl_desc, ufs_fcntl },			/* fcntl */
+	{ &vop_fcntl_desc, genfs_fcntl },		/* fcntl */
 	{ &vop_fsync_desc, ext2fs_fsync },		/* fsync */
 	{ &vop_inactive_desc, ext2fs_inactive },	/* inactive */
 	{ &vop_reclaim_desc, ext2fs_reclaim },		/* reclaim */
-	{ &vop_lock_desc, ufs_lock },			/* lock */
-	{ &vop_unlock_desc, ufs_unlock },		/* unlock */
+	{ &vop_lock_desc, genfs_lock },			/* lock */
+	{ &vop_unlock_desc, genfs_unlock },		/* unlock */
 	{ &vop_strategy_desc, vn_fifo_bypass },		/* strategy */
 	{ &vop_print_desc, ufs_print },			/* print */
-	{ &vop_islocked_desc, ufs_islocked },		/* islocked */
+	{ &vop_islocked_desc, genfs_islocked },		/* islocked */
 	{ &vop_bwrite_desc, vn_bwrite },		/* bwrite */
 	{ &vop_getextattr_desc, ext2fs_getextattr },	/* getextattr */
 	{ &vop_setextattr_desc, ext2fs_setextattr },	/* setextattr */

Index: src/sys/ufs/ffs/ffs_vnops.c
diff -u src/sys/ufs/ffs/ffs_vnops.c:1.136 src/sys/ufs/ffs/ffs_vnops.c:1.137
--- src/sys/ufs/ffs/ffs_vnops.c:1.136	Sun Jul 18 23:56:14 2021
+++ src/sys/ufs/ffs/ffs_vnops.c	Sun Jul 18 23:57:15 2021
@@ -1,4 +1,4 @@
-/*	$NetBSD: ffs_vnops.c,v 1.136 2021/07/18 23:56:14 dholland Exp $	*/
+/*	$NetBSD: ffs_vnops.c,v 1.137 2021/07/18 23:57:15 dholland Exp $	*/
 
 /*-
  * Copyright (c) 2008, 2009 The NetBSD Foundation, Inc.
@@ -61,7 +61,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: ffs_vnops.c,v 1.136 2021/07/18 23:56:14 dholland Exp $");
+__KERNEL_RCSID(0, "$NetBSD: ffs_vnops.c,v 1.137 2021/07/18 23:57:15 dholland Exp $");
 
 #if defined(_KERNEL_OPT)
 #include "opt_ffs.h"
@@ -117,14 +117,14 @@ const struct vnodeopv_entry_desc ffs_vno
 	{ &vop_write_desc, ffs_write },			/* write */
 	{ &vop_fallocate_desc, genfs_eopnotsupp },	/* fallocate */
 	{ &vop_fdiscard_desc, genfs_eopnotsupp },	/* fdiscard */
-	{ &vop_ioctl_desc, ufs_ioctl },			/* ioctl */
-	{ &vop_fcntl_desc, ufs_fcntl },			/* fcntl */
-	{ &vop_poll_desc, ufs_poll },			/* poll */
+	{ &vop_ioctl_desc, genfs_enoioctl },		/* ioctl */
+	{ &vop_fcntl_desc, genfs_fcntl },		/* fcntl */
+	{ &vop_poll_desc, genfs_poll },			/* poll */
 	{ &vop_kqfilter_desc, genfs_kqfilter },		/* kqfilter */
-	{ &vop_revoke_desc, ufs_revoke },		/* revoke */
-	{ &vop_mmap_desc, ufs_mmap },			/* mmap */
+	{ &vop_revoke_desc, genfs_revoke },		/* revoke */
+	{ &vop_mmap_desc, genfs_mmap },			/* mmap */
 	{ &vop_fsync_desc, ffs_fsync },			/* fsync */
-	{ &vop_seek_desc, ufs_seek },			/* seek */
+	{ &vop_seek_desc, genfs_seek },			/* seek */
 	{ &vop_remove_desc, ufs_remove },		/* remove */
 	{ &vop_link_desc, ufs_link },			/* link */
 	{ &vop_rename_desc, ufs_rename },		/* rename */
@@ -133,15 +133,15 @@ const struct vnodeopv_entry_desc ffs_vno
 	{ &vop_symlink_desc, ufs_symlink },		/* symlink */
 	{ &vop_readdir_desc, ufs_readdir },		/* readdir */
 	{ &vop_readlink_desc, ufs_readlink },		/* readlink */
-	{ &vop_abortop_desc, ufs_abortop },		/* abortop */
+	{ &vop_abortop_desc, genfs_abortop },		/* abortop */
 	{ &vop_inactive_desc, ufs_inactive },		/* inactive */
 	{ &vop_reclaim_desc, ffs_reclaim },		/* reclaim */
-	{ &vop_lock_desc, ufs_lock },			/* lock */
-	{ &vop_unlock_desc, ufs_unlock },		/* unlock */
+	{ &vop_lock_desc, genfs_lock },			/* lock */
+	{ &vop_unlock_desc, genfs_unlock },		/* unlock */
 	{ &vop_bmap_desc, ufs_bmap },			/* bmap */
 	{ &vop_strategy_desc, ufs_strategy },		/* strategy */
 	{ &vop_print_desc, ufs_print },			/* print */
-	{ &vop_islocked_desc, ufs_islocked },		/* islocked */
+	{ &vop_islocked_desc, genfs_islocked },		/* islocked */
 	{ &vop_pathconf_desc, ufs_pathconf },		/* pathconf */
 	{ &vop_advlock_desc, ufs_advlock },		/* advlock */
 	{ &vop_bwrite_desc, vn_bwrite },		/* bwrite */
@@ -172,14 +172,14 @@ const struct vnodeopv_entry_desc ffs_spe
 	{ &vop_setattr_desc, ufs_setattr },		/* setattr */
 	{ &vop_read_desc, ufsspec_read },		/* read */
 	{ &vop_write_desc, ufsspec_write },		/* write */
-	{ &vop_fcntl_desc, ufs_fcntl },			/* fcntl */
+	{ &vop_fcntl_desc, genfs_fcntl },		/* fcntl */
 	{ &vop_fsync_desc, ffs_spec_fsync },		/* fsync */
 	{ &vop_inactive_desc, ufs_inactive },		/* inactive */
 	{ &vop_reclaim_desc, ffs_reclaim },		/* reclaim */
-	{ &vop_lock_desc, ufs_lock },			/* lock */
-	{ &vop_unlock_desc, ufs_unlock },		/* unlock */
+	{ &vop_lock_desc, genfs_lock },			/* lock */
+	{ &vop_unlock_desc, genfs_unlock },		/* unlock */
 	{ &vop_print_desc, ufs_print },			/* print */
-	{ &vop_islocked_desc, ufs_islocked },		/* islocked */
+	{ &vop_islocked_desc, genfs_islocked },		/* islocked */
 	{ &vop_bwrite_desc, vn_bwrite },		/* bwrite */
 	{ &vop_openextattr_desc, ffs_openextattr },	/* openextattr */
 	{ &vop_closeextattr_desc, ffs_closeextattr },	/* closeextattr */
@@ -206,15 +206,15 @@ const struct vnodeopv_entry_desc ffs_fif
 	{ &vop_setattr_desc, ufs_setattr },		/* setattr */
 	{ &vop_read_desc, ufsfifo_read },		/* read */
 	{ &vop_write_desc, ufsfifo_write },		/* write */
-	{ &vop_fcntl_desc, ufs_fcntl },			/* fcntl */
+	{ &vop_fcntl_desc, genfs_fcntl },		/* fcntl */
 	{ &vop_fsync_desc, ffs_fsync },			/* fsync */
 	{ &vop_inactive_desc, ufs_inactive },		/* inactive */
 	{ &vop_reclaim_desc, ffs_reclaim },		/* reclaim */
-	{ &vop_lock_desc, ufs_lock },			/* lock */
-	{ &vop_unlock_desc, ufs_unlock },		/* unlock */
+	{ &vop_lock_desc, genfs_lock },			/* lock */
+	{ &vop_unlock_desc, genfs_unlock },		/* unlock */
 	{ &vop_strategy_desc, ffsext_strategy },	/* strategy */
 	{ &vop_print_desc, ufs_print },			/* print */
-	{ &vop_islocked_desc, ufs_islocked },		/* islocked */
+	{ &vop_islocked_desc, genfs_islocked },		/* islocked */
 	{ &vop_bwrite_desc, vn_bwrite },		/* bwrite */
 	{ &vop_openextattr_desc, ffs_openextattr },	/* openextattr */
 	{ &vop_closeextattr_desc, ffs_closeextattr },	/* closeextattr */

Index: src/sys/ufs/lfs/lfs_vnops.c
diff -u src/sys/ufs/lfs/lfs_vnops.c:1.338 src/sys/ufs/lfs/lfs_vnops.c:1.339
--- src/sys/ufs/lfs/lfs_vnops.c:1.338	Sun Jul 18 23:56:14 2021
+++ src/sys/ufs/lfs/lfs_vnops.c	Sun Jul 18 23:57:15 2021
@@ -1,4 +1,4 @@
-/*	$NetBSD: lfs_vnops.c,v 1.338 2021/07/18 23:56:14 dholland Exp $	*/
+/*	$NetBSD: lfs_vnops.c,v 1.339 2021/07/18 23:57:15 dholland Exp $	*/
 
 /*-
  * Copyright (c) 1999, 2000, 2001, 2002, 2003 The NetBSD Foundation, Inc.
@@ -125,7 +125,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: lfs_vnops.c,v 1.338 2021/07/18 23:56:14 dholland Exp $");
+__KERNEL_RCSID(0, "$NetBSD: lfs_vnops.c,v 1.339 2021/07/18 23:57:15 dholland Exp $");
 
 #ifdef _KERNEL_OPT
 #include "opt_compat_netbsd.h"
@@ -197,14 +197,14 @@ const struct vnodeopv_entry_desc lfs_vno
 	{ &vop_write_desc, lfs_write },			/* write */
 	{ &vop_fallocate_desc, genfs_eopnotsupp },	/* fallocate */
 	{ &vop_fdiscard_desc, genfs_eopnotsupp },	/* fdiscard */
-	{ &vop_ioctl_desc, ulfs_ioctl },		/* ioctl */
+	{ &vop_ioctl_desc, genfs_enoioctl },		/* ioctl */
 	{ &vop_fcntl_desc, lfs_fcntl },			/* fcntl */
-	{ &vop_poll_desc, ulfs_poll },			/* poll */
+	{ &vop_poll_desc, genfs_poll },			/* poll */
 	{ &vop_kqfilter_desc, genfs_kqfilter },		/* kqfilter */
-	{ &vop_revoke_desc, ulfs_revoke },		/* revoke */
+	{ &vop_revoke_desc, genfs_revoke },		/* revoke */
 	{ &vop_mmap_desc, lfs_mmap },			/* mmap */
 	{ &vop_fsync_desc, lfs_fsync },			/* fsync */
-	{ &vop_seek_desc, ulfs_seek },			/* seek */
+	{ &vop_seek_desc, genfs_seek },			/* seek */
 	{ &vop_remove_desc, lfs_remove },		/* remove */
 	{ &vop_link_desc, lfs_link },			/* link */
 	{ &vop_rename_desc, lfs_rename },		/* rename */
@@ -213,15 +213,15 @@ const struct vnodeopv_entry_desc lfs_vno
 	{ &vop_symlink_desc, lfs_symlink },		/* symlink */
 	{ &vop_readdir_desc, ulfs_readdir },		/* readdir */
 	{ &vop_readlink_desc, ulfs_readlink },		/* readlink */
-	{ &vop_abortop_desc, ulfs_abortop },		/* abortop */
+	{ &vop_abortop_desc, genfs_abortop },		/* abortop */
 	{ &vop_inactive_desc, lfs_inactive },		/* inactive */
 	{ &vop_reclaim_desc, lfs_reclaim },		/* reclaim */
-	{ &vop_lock_desc, ulfs_lock },			/* lock */
-	{ &vop_unlock_desc, ulfs_unlock },		/* unlock */
+	{ &vop_lock_desc, genfs_lock },			/* lock */
+	{ &vop_unlock_desc, genfs_unlock },		/* unlock */
 	{ &vop_bmap_desc, ulfs_bmap },			/* bmap */
 	{ &vop_strategy_desc, lfs_strategy },		/* strategy */
 	{ &vop_print_desc, ulfs_print },		/* print */
-	{ &vop_islocked_desc, ulfs_islocked },		/* islocked */
+	{ &vop_islocked_desc, genfs_islocked },		/* islocked */
 	{ &vop_pathconf_desc, ulfs_pathconf },		/* pathconf */
 	{ &vop_advlock_desc, ulfs_advlock },		/* advlock */
 	{ &vop_bwrite_desc, lfs_bwrite },		/* bwrite */
@@ -249,14 +249,14 @@ const struct vnodeopv_entry_desc lfs_spe
 	{ &vop_setattr_desc, lfs_setattr },		/* setattr */
 	{ &vop_read_desc, ulfsspec_read },		/* read */
 	{ &vop_write_desc, ulfsspec_write },		/* write */
-	{ &vop_fcntl_desc, ulfs_fcntl },		/* fcntl */
+	{ &vop_fcntl_desc, genfs_fcntl },		/* fcntl */
 	{ &vop_fsync_desc, spec_fsync },		/* fsync */
 	{ &vop_inactive_desc, lfs_inactive },		/* inactive */
 	{ &vop_reclaim_desc, lfs_reclaim },		/* reclaim */
-	{ &vop_lock_desc, ulfs_lock },			/* lock */
-	{ &vop_unlock_desc, ulfs_unlock },		/* unlock */
+	{ &vop_lock_desc, genfs_lock },			/* lock */
+	{ &vop_unlock_desc, genfs_unlock },		/* unlock */
 	{ &vop_print_desc, ulfs_print },		/* print */
-	{ &vop_islocked_desc, ulfs_islocked },		/* islocked */
+	{ &vop_islocked_desc, genfs_islocked },		/* islocked */
 	{ &vop_bwrite_desc, vn_bwrite },		/* bwrite */
 	{ &vop_openextattr_desc, lfs_openextattr },	/* openextattr */
 	{ &vop_closeextattr_desc, lfs_closeextattr },	/* closeextattr */
@@ -280,15 +280,15 @@ const struct vnodeopv_entry_desc lfs_fif
 	{ &vop_setattr_desc, lfs_setattr },		/* setattr */
 	{ &vop_read_desc, ulfsfifo_read },		/* read */
 	{ &vop_write_desc, ulfsfifo_write },		/* write */
-	{ &vop_fcntl_desc, ulfs_fcntl },		/* fcntl */
+	{ &vop_fcntl_desc, genfs_fcntl },		/* fcntl */
 	{ &vop_fsync_desc, vn_fifo_bypass },		/* fsync */
 	{ &vop_inactive_desc, lfs_inactive },		/* inactive */
 	{ &vop_reclaim_desc, lfs_reclaim },		/* reclaim */
-	{ &vop_lock_desc, ulfs_lock },			/* lock */
-	{ &vop_unlock_desc, ulfs_unlock },		/* unlock */
+	{ &vop_lock_desc, genfs_lock },			/* lock */
+	{ &vop_unlock_desc, genfs_unlock },		/* unlock */
 	{ &vop_strategy_desc, vn_fifo_bypass },		/* strategy */
 	{ &vop_print_desc, ulfs_print },		/* print */
-	{ &vop_islocked_desc, ulfs_islocked },		/* islocked */
+	{ &vop_islocked_desc, genfs_islocked },		/* islocked */
 	{ &vop_bwrite_desc, lfs_bwrite },		/* bwrite */
 	{ &vop_openextattr_desc, lfs_openextattr },	/* openextattr */
 	{ &vop_closeextattr_desc, lfs_closeextattr },	/* closeextattr */
@@ -1873,7 +1873,7 @@ lfs_fcntl(void *v)
 	/* Only respect LFS fcntls on fs root or Ifile */
 	if (VTOI(ap->a_vp)->i_number != ULFS_ROOTINO &&
 	    VTOI(ap->a_vp)->i_number != LFS_IFILE_INUM) {
-		return ulfs_fcntl(v);
+		return genfs_fcntl(v);
 	}
 
 	/* Avoid locking a draining lock */
@@ -2152,7 +2152,7 @@ segwait_common:
 		return 0;
 
 	    default:
-		return ulfs_fcntl(v);
+		return genfs_fcntl(v);
 	}
 	return 0;
 }
@@ -2214,7 +2214,7 @@ lfs_mmap(void *v)
 
 	if (VTOI(ap->a_vp)->i_number == LFS_IFILE_INUM)
 		return EOPNOTSUPP;
-	return ulfs_mmap(v);
+	return genfs_mmap(v);
 }
 
 static int

Index: src/sys/ufs/lfs/ulfs_extern.h
diff -u src/sys/ufs/lfs/ulfs_extern.h:1.25 src/sys/ufs/lfs/ulfs_extern.h:1.26
--- src/sys/ufs/lfs/ulfs_extern.h:1.25	Fri Jan 17 20:08:10 2020
+++ src/sys/ufs/lfs/ulfs_extern.h	Sun Jul 18 23:57:15 2021
@@ -1,4 +1,4 @@
-/*	$NetBSD: ulfs_extern.h,v 1.25 2020/01/17 20:08:10 ad Exp $	*/
+/*	$NetBSD: ulfs_extern.h,v 1.26 2021/07/18 23:57:15 dholland Exp $	*/
 /*  from NetBSD: ufs_extern.h,v 1.79 2015/03/27 17:27:56 riastradh Exp   */
 
 /*-
@@ -59,7 +59,6 @@ struct vattr;
 struct vnode;
 
 __BEGIN_DECLS
-#define	ulfs_abortop	genfs_abortop
 int	ulfs_access(void *);
 int	ulfs_advlock(void *);
 int	ulfs_bmap(void *);
@@ -67,14 +66,8 @@ int	ulfs_close(void *);
 int	ulfs_create(void *);
 int	ulfs_getattr(void *);
 int	ulfs_inactive(void *);
-#define	ulfs_fcntl	genfs_fcntl
-#define	ulfs_ioctl	genfs_enoioctl
-#define	ulfs_islocked	genfs_islocked
 int	ulfs_link(void *);
-#define	ulfs_lock	genfs_lock
 int	ulfs_lookup(void *);
-#define	ulfs_mmap	genfs_mmap
-#define	ulfs_revoke	genfs_revoke
 int	ulfs_open(void *);
 int	ulfs_pathconf(void *);
 int	ulfs_print(void *);
@@ -82,11 +75,8 @@ int	ulfs_readdir(void *);
 int	ulfs_readlink(void *);
 int	ulfs_remove(void *);
 int	ulfs_rmdir(void *);
-#define	ulfs_seek	genfs_seek
-#define	ulfs_poll	genfs_poll
 int	ulfs_setattr(void *);
 int	ulfs_strategy(void *);
-#define	ulfs_unlock	genfs_unlock
 int	ulfs_whiteout(void *);
 int	ulfsspec_close(void *);
 int	ulfsspec_read(void *);

Index: src/sys/ufs/mfs/mfs_extern.h
diff -u src/sys/ufs/mfs/mfs_extern.h:1.31 src/sys/ufs/mfs/mfs_extern.h:1.32
--- src/sys/ufs/mfs/mfs_extern.h:1.31	Tue Mar  2 17:20:02 2010
+++ src/sys/ufs/mfs/mfs_extern.h	Sun Jul 18 23:57:15 2021
@@ -1,4 +1,4 @@
-/*	$NetBSD: mfs_extern.h,v 1.31 2010/03/02 17:20:02 pooka Exp $	*/
+/*	$NetBSD: mfs_extern.h,v 1.32 2021/07/18 23:57:15 dholland Exp $	*/
 
 /*-
  * Copyright (c) 1991, 1993
@@ -46,7 +46,6 @@ struct statvfs;
 struct vnode;
 
 __BEGIN_DECLS
-#define	mfs_ioctl	genfs_enoioctl
 
 /* mfs_vfsops.c */
 VFS_PROTOS(mfs);

Index: src/sys/ufs/mfs/mfs_vnops.c
diff -u src/sys/ufs/mfs/mfs_vnops.c:1.62 src/sys/ufs/mfs/mfs_vnops.c:1.63
--- src/sys/ufs/mfs/mfs_vnops.c:1.62	Tue Jun 29 22:34:10 2021
+++ src/sys/ufs/mfs/mfs_vnops.c	Sun Jul 18 23:57:15 2021
@@ -1,4 +1,4 @@
-/*	$NetBSD: mfs_vnops.c,v 1.62 2021/06/29 22:34:10 dholland Exp $	*/
+/*	$NetBSD: mfs_vnops.c,v 1.63 2021/07/18 23:57:15 dholland Exp $	*/
 
 /*
  * Copyright (c) 1989, 1993
@@ -32,7 +32,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: mfs_vnops.c,v 1.62 2021/06/29 22:34:10 dholland Exp $");
+__KERNEL_RCSID(0, "$NetBSD: mfs_vnops.c,v 1.63 2021/07/18 23:57:15 dholland Exp $");
 
 #include <sys/param.h>
 #include <sys/systm.h>
@@ -59,34 +59,34 @@ int (**mfs_vnodeop_p)(void *);
 const struct vnodeopv_entry_desc mfs_vnodeop_entries[] = {
 	{ &vop_default_desc, vn_default_error },
 	{ &vop_parsepath_desc, genfs_parsepath },	/* parsepath */
-	{ &vop_lookup_desc, mfs_lookup },		/* lookup */
-	{ &vop_create_desc, mfs_create },		/* create */
-	{ &vop_mknod_desc, mfs_mknod },			/* mknod */
+	{ &vop_lookup_desc, genfs_badop },		/* lookup */
+	{ &vop_create_desc, genfs_badop },		/* create */
+	{ &vop_mknod_desc, genfs_badop },		/* mknod */
 	{ &vop_open_desc, mfs_open },			/* open */
 	{ &vop_close_desc, mfs_close },			/* close */
-	{ &vop_access_desc, mfs_access },		/* access */
-	{ &vop_accessx_desc, genfs_accessx },		/* accessx */
-	{ &vop_getattr_desc, mfs_getattr },		/* getattr */
-	{ &vop_setattr_desc, mfs_setattr },		/* setattr */
-	{ &vop_read_desc, mfs_read },			/* read */
-	{ &vop_write_desc, mfs_write },			/* write */
+	{ &vop_access_desc, genfs_badop },		/* access */
+	{ &vop_accessx_desc, genfs_badop },		/* accessx */
+	{ &vop_getattr_desc, genfs_badop },		/* getattr */
+	{ &vop_setattr_desc, genfs_badop },		/* setattr */
+	{ &vop_read_desc, genfs_badop },		/* read */
+	{ &vop_write_desc, genfs_badop },		/* write */
 	{ &vop_fallocate_desc, genfs_eopnotsupp },	/* fallocate */
 	{ &vop_fdiscard_desc, genfs_eopnotsupp },	/* fdiscard */
-	{ &vop_ioctl_desc, mfs_ioctl },			/* ioctl */
-	{ &vop_poll_desc, mfs_poll },			/* poll */
-	{ &vop_revoke_desc, mfs_revoke },		/* revoke */
-	{ &vop_mmap_desc, mfs_mmap },			/* mmap */
+	{ &vop_ioctl_desc, genfs_enoioctl },		/* ioctl */
+	{ &vop_poll_desc, genfs_badop },		/* poll */
+	{ &vop_revoke_desc, genfs_revoke },		/* revoke */
+	{ &vop_mmap_desc, genfs_badop },		/* mmap */
 	{ &vop_fsync_desc, spec_fsync },		/* fsync */
-	{ &vop_seek_desc, mfs_seek },			/* seek */
-	{ &vop_remove_desc, mfs_remove },		/* remove */
-	{ &vop_link_desc, mfs_link },			/* link */
-	{ &vop_rename_desc, mfs_rename },		/* rename */
-	{ &vop_mkdir_desc, mfs_mkdir },			/* mkdir */
-	{ &vop_rmdir_desc, mfs_rmdir },			/* rmdir */
-	{ &vop_symlink_desc, mfs_symlink },		/* symlink */
-	{ &vop_readdir_desc, mfs_readdir },		/* readdir */
-	{ &vop_readlink_desc, mfs_readlink },		/* readlink */
-	{ &vop_abortop_desc, mfs_abortop },		/* abortop */
+	{ &vop_seek_desc, genfs_badop },		/* seek */
+	{ &vop_remove_desc, genfs_badop },		/* remove */
+	{ &vop_link_desc, genfs_badop },		/* link */
+	{ &vop_rename_desc, genfs_badop },		/* rename */
+	{ &vop_mkdir_desc, genfs_badop },		/* mkdir */
+	{ &vop_rmdir_desc, genfs_badop },		/* rmdir */
+	{ &vop_symlink_desc, genfs_badop },		/* symlink */
+	{ &vop_readdir_desc, genfs_badop },		/* readdir */
+	{ &vop_readlink_desc, genfs_badop },		/* readlink */
+	{ &vop_abortop_desc, genfs_badop },		/* abortop */
 	{ &vop_inactive_desc, mfs_inactive },		/* inactive */
 	{ &vop_reclaim_desc, mfs_reclaim },		/* reclaim */
 	{ &vop_lock_desc, genfs_nolock },		/* lock */
@@ -94,11 +94,11 @@ const struct vnodeopv_entry_desc mfs_vno
 	{ &vop_bmap_desc, mfs_bmap },			/* bmap */
 	{ &vop_strategy_desc, mfs_strategy },		/* strategy */
 	{ &vop_print_desc, mfs_print },			/* print */
-	{ &vop_islocked_desc, mfs_islocked },		/* islocked */
-	{ &vop_pathconf_desc, mfs_pathconf },		/* pathconf */
-	{ &vop_advlock_desc, mfs_advlock },		/* advlock */
-	{ &vop_bwrite_desc, mfs_bwrite },		/* bwrite */
-	{ &vop_putpages_desc, mfs_putpages },		/* putpages */
+	{ &vop_islocked_desc, genfs_noislocked },	/* islocked */
+	{ &vop_pathconf_desc, genfs_badop },		/* pathconf */
+	{ &vop_advlock_desc, genfs_badop },		/* advlock */
+	{ &vop_bwrite_desc, vn_bwrite },		/* bwrite */
+	{ &vop_putpages_desc, genfs_null_putpages },	/* putpages */
 	{ NULL, NULL }
 };
 const struct vnodeopv_desc mfs_vnodeop_opv_desc =
@@ -122,7 +122,7 @@ mfs_open(void *v)
 	} */ *ap = v;
 
 	if (ap->a_vp->v_type != VBLK) {
-		panic("mfs_ioctl not VBLK");
+		panic("mfs_open not VBLK");
 		/* NOTREACHED */
 	}
 	return (0);

Index: src/sys/ufs/mfs/mfsnode.h
diff -u src/sys/ufs/mfs/mfsnode.h:1.21 src/sys/ufs/mfs/mfsnode.h:1.22
--- src/sys/ufs/mfs/mfsnode.h:1.21	Wed Mar 26 14:19:43 2008
+++ src/sys/ufs/mfs/mfsnode.h	Sun Jul 18 23:57:15 2021
@@ -1,4 +1,4 @@
-/*	$NetBSD: mfsnode.h,v 1.21 2008/03/26 14:19:43 ad Exp $	*/
+/*	$NetBSD: mfsnode.h,v 1.22 2021/07/18 23:57:15 dholland Exp $	*/
 
 /*
  * Copyright (c) 1989, 1993
@@ -58,34 +58,6 @@ struct mfsnode {
 #define VTOMFS(vp)	((struct mfsnode *)(vp)->v_data)
 #define MFSTOV(mfsp)	((mfsp)->mfs_vnode)
 
-/* Prototypes for MFS operations on vnodes. */
-#define	mfs_lookup	genfs_badop
-#define	mfs_create	genfs_badop
-#define	mfs_mknod	genfs_badop
-#define	mfs_access	genfs_badop
-#define	mfs_getattr	genfs_badop
-#define	mfs_setattr	genfs_badop
-#define	mfs_read	genfs_badop
-#define	mfs_write	genfs_badop
-#define	mfs_poll	genfs_badop
-#define	mfs_mmap	genfs_badop
-#define	mfs_seek	genfs_badop
-#define	mfs_remove	genfs_badop
-#define	mfs_link	genfs_badop
-#define	mfs_rename	genfs_badop
-#define	mfs_mkdir	genfs_badop
-#define	mfs_rmdir	genfs_badop
-#define	mfs_symlink	genfs_badop
-#define	mfs_readdir	genfs_badop
-#define	mfs_readlink	genfs_badop
-#define	mfs_abortop	genfs_badop
-#define	mfs_islocked	genfs_noislocked
-#define	mfs_pathconf	genfs_badop
-#define	mfs_advlock	genfs_badop
-#define	mfs_bwrite	vn_bwrite
-#define	mfs_revoke	genfs_revoke
-#define	mfs_putpages	genfs_null_putpages
-
 #endif /* defined(_KERNEL) */
 
 #endif /* !_UFS_MFS_MFSNODE_H_ */

Index: src/sys/ufs/ufs/ufs_extern.h
diff -u src/sys/ufs/ufs/ufs_extern.h:1.86 src/sys/ufs/ufs/ufs_extern.h:1.87
--- src/sys/ufs/ufs/ufs_extern.h:1.86	Sat May 16 18:31:54 2020
+++ src/sys/ufs/ufs/ufs_extern.h	Sun Jul 18 23:57:15 2021
@@ -1,4 +1,4 @@
-/*	$NetBSD: ufs_extern.h,v 1.86 2020/05/16 18:31:54 christos Exp $	*/
+/*	$NetBSD: ufs_extern.h,v 1.87 2021/07/18 23:57:15 dholland Exp $	*/
 
 /*-
  * Copyright (c) 1991, 1993, 1994
@@ -60,7 +60,6 @@ struct vnode;
 extern pool_cache_t ufs_direct_cache;	/* memory pool for directs */
 
 __BEGIN_DECLS
-#define	ufs_abortop	genfs_abortop
 int	ufs_accessx(void *);
 int	ufs_advlock(void *);
 int	ufs_bmap(void *);
@@ -68,16 +67,10 @@ int	ufs_close(void *);
 int	ufs_create(void *);
 int	ufs_getattr(void *);
 int	ufs_inactive(void *);
-#define	ufs_fcntl	genfs_fcntl
-#define	ufs_ioctl	genfs_enoioctl
-#define	ufs_islocked	genfs_islocked
 int	ufs_link(void *);
-#define	ufs_lock	genfs_lock
 int	ufs_lookup(void *);
 int	ufs_mkdir(void *);
 int	ufs_mknod(void *);
-#define	ufs_mmap	genfs_mmap
-#define	ufs_revoke	genfs_revoke
 int	ufs_open(void *);
 int	ufs_pathconf(void *);
 int	ufs_print(void *);
@@ -86,13 +79,11 @@ int	ufs_readlink(void *);
 int	ufs_remove(void *);
 int	ufs_rename(void *);
 int	ufs_rmdir(void *);
-#define	ufs_seek	genfs_seek
-#define	ufs_poll	genfs_poll
 int	ufs_setattr(void *);
 int	ufs_strategy(void *);
 int	ufs_symlink(void *);
-#define	ufs_unlock	genfs_unlock
 int	ufs_whiteout(void *);
+
 int	ufsspec_close(void *);
 int	ufsspec_read(void *);
 int	ufsspec_write(void *);

Reply via email to