Use macros for the canned parts of device and fifo vnode op tables.
Add GENFS_SPECOP_ENTRIES and GENFS_FIFOOP_ENTRIES macros that contain the portion of the vnode ops table declaration that is (conservatively) the same in every fs. Use these in every fs that supports devices and/or fifos with separate ops tables. Note that ptyfs works differently (it has one type of vnode with open-coded dispatch to the specfs code, which I haven't changed in this commit) and rump/librump/rumpvfs/rumpfs.c has an indirect dynamic dispatch that already does more or less the same thing, which I also haven't changed. Also note that this anticipates a few bits in the next changeset here and there, and adds missing but unreachable calls in some cases (e.g. most fses weren't defining whiteout on devices and fifos, but it isn't reachable there), and it changes parsepath on devices and fifos to genfs_badop from genfs_parsepath (but it's not reachable there either). It appears that devices in kernfs were missing kqfilter, so it's possible that if you try to use kqueue on /kern/rootdev that it'll explode. And finally note that the ops declaration tables aren't order-dependent. (Other than vop_default_desc has to come first.) Otherwise this wouldn't work.
This commit is contained in:
parent
6e151e1b7b
commit
d819c3614f
|
@ -6394,10 +6394,7 @@ const struct vnodeopv_desc zfs_vnodeop_opv_desc =
|
|||
int (**zfs_specop_p)(void *);
|
||||
const struct vnodeopv_entry_desc zfs_specop_entries[] = {
|
||||
{ &vop_default_desc, vn_default_error },
|
||||
{ &vop_lookup_desc, spec_lookup },
|
||||
{ &vop_create_desc, spec_create },
|
||||
{ &vop_mknod_desc, spec_mknod },
|
||||
{ &vop_open_desc, spec_open },
|
||||
GENFS_SPECOP_ENTRIES,
|
||||
{ &vop_close_desc, spec_close },
|
||||
{ &vop_access_desc, zfs_netbsd_access },
|
||||
{ &vop_accessx_desc, genfs_accessx },
|
||||
|
@ -6405,31 +6402,12 @@ const struct vnodeopv_entry_desc zfs_specop_entries[] = {
|
|||
{ &vop_setattr_desc, zfs_netbsd_setattr },
|
||||
{ &vop_read_desc, /**/zfs_netbsd_read },
|
||||
{ &vop_write_desc, /**/zfs_netbsd_write },
|
||||
{ &vop_ioctl_desc, spec_ioctl },
|
||||
{ &vop_poll_desc, spec_poll },
|
||||
{ &vop_kqfilter_desc, spec_kqfilter },
|
||||
{ &vop_revoke_desc, spec_revoke },
|
||||
{ &vop_fsync_desc, zfs_spec_fsync },
|
||||
{ &vop_remove_desc, spec_remove },
|
||||
{ &vop_link_desc, spec_link },
|
||||
{ &vop_lock_desc, zfs_netbsd_lock },
|
||||
{ &vop_unlock_desc, zfs_netbsd_unlock },
|
||||
{ &vop_rename_desc, spec_rename },
|
||||
{ &vop_mkdir_desc, spec_mkdir },
|
||||
{ &vop_rmdir_desc, spec_rmdir },
|
||||
{ &vop_symlink_desc, spec_symlink },
|
||||
{ &vop_readdir_desc, spec_readdir },
|
||||
{ &vop_readlink_desc, spec_readlink },
|
||||
{ &vop_inactive_desc, zfs_netbsd_inactive },
|
||||
{ &vop_reclaim_desc, zfs_netbsd_reclaim },
|
||||
{ &vop_pathconf_desc, spec_pathconf },
|
||||
{ &vop_seek_desc, spec_seek },
|
||||
{ &vop_getpages_desc, spec_getpages },
|
||||
{ &vop_putpages_desc, spec_putpages },
|
||||
{ &vop_mmap_desc, spec_mmap },
|
||||
{ &vop_islocked_desc, zfs_netbsd_islocked },
|
||||
{ &vop_advlock_desc, spec_advlock },
|
||||
{ &vop_strategy_desc, spec_strategy },
|
||||
{ &vop_bwrite_desc, spec_bwrite },
|
||||
{ &vop_print_desc, zfs_netbsd_print },
|
||||
{ &vop_fcntl_desc, zfs_netbsd_fcntl },
|
||||
|
@ -6442,10 +6420,7 @@ const struct vnodeopv_desc zfs_specop_opv_desc =
|
|||
int (**zfs_fifoop_p)(void *);
|
||||
const struct vnodeopv_entry_desc zfs_fifoop_entries[] = {
|
||||
{ &vop_default_desc, vn_default_error },
|
||||
{ &vop_lookup_desc, vn_fifo_bypass },
|
||||
{ &vop_create_desc, vn_fifo_bypass },
|
||||
{ &vop_mknod_desc, vn_fifo_bypass },
|
||||
{ &vop_open_desc, vn_fifo_bypass },
|
||||
GENFS_FIFOOP_ENTRIES,
|
||||
{ &vop_close_desc, vn_fifo_bypass },
|
||||
{ &vop_access_desc, zfs_netbsd_access },
|
||||
{ &vop_accessx_desc, genfs_accessx },
|
||||
|
@ -6453,29 +6428,14 @@ const struct vnodeopv_entry_desc zfs_fifoop_entries[] = {
|
|||
{ &vop_setattr_desc, zfs_netbsd_setattr },
|
||||
{ &vop_read_desc, /**/zfs_netbsd_read },
|
||||
{ &vop_write_desc, /**/zfs_netbsd_write },
|
||||
{ &vop_ioctl_desc, vn_fifo_bypass },
|
||||
{ &vop_poll_desc, vn_fifo_bypass },
|
||||
{ &vop_kqfilter_desc, vn_fifo_bypass },
|
||||
{ &vop_revoke_desc, vn_fifo_bypass },
|
||||
{ &vop_fsync_desc, zfs_netbsd_fsync },
|
||||
{ &vop_remove_desc, vn_fifo_bypass },
|
||||
{ &vop_link_desc, vn_fifo_bypass },
|
||||
{ &vop_lock_desc, zfs_netbsd_lock },
|
||||
{ &vop_unlock_desc, zfs_netbsd_unlock },
|
||||
{ &vop_rename_desc, vn_fifo_bypass },
|
||||
{ &vop_mkdir_desc, vn_fifo_bypass },
|
||||
{ &vop_rmdir_desc, vn_fifo_bypass },
|
||||
{ &vop_symlink_desc, vn_fifo_bypass },
|
||||
{ &vop_readdir_desc, vn_fifo_bypass },
|
||||
{ &vop_readlink_desc, vn_fifo_bypass },
|
||||
{ &vop_inactive_desc, zfs_netbsd_inactive },
|
||||
{ &vop_reclaim_desc, zfs_netbsd_reclaim },
|
||||
{ &vop_pathconf_desc, vn_fifo_bypass },
|
||||
{ &vop_seek_desc, vn_fifo_bypass },
|
||||
{ &vop_putpages_desc, vn_fifo_bypass },
|
||||
{ &vop_mmap_desc, vn_fifo_bypass },
|
||||
{ &vop_islocked_desc, zfs_netbsd_islocked },
|
||||
{ &vop_advlock_desc, vn_fifo_bypass },
|
||||
{ &vop_bwrite_desc, vn_bwrite },
|
||||
{ &vop_strategy_desc, vn_fifo_bypass },
|
||||
{ &vop_print_desc, zfs_netbsd_print },
|
||||
{ &vop_fcntl_desc, zfs_netbsd_fcntl },
|
||||
{ NULL, NULL }
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
/* $NetBSD: cd9660_vnops.c,v 1.59 2021/06/29 22:34:06 dholland Exp $ */
|
||||
/* $NetBSD: cd9660_vnops.c,v 1.60 2021/07/18 23:56:13 dholland Exp $ */
|
||||
|
||||
/*-
|
||||
* Copyright (c) 1994
|
||||
|
@ -37,7 +37,7 @@
|
|||
*/
|
||||
|
||||
#include <sys/cdefs.h>
|
||||
__KERNEL_RCSID(0, "$NetBSD: cd9660_vnops.c,v 1.59 2021/06/29 22:34:06 dholland Exp $");
|
||||
__KERNEL_RCSID(0, "$NetBSD: cd9660_vnops.c,v 1.60 2021/07/18 23:56:13 dholland Exp $");
|
||||
|
||||
#include <sys/param.h>
|
||||
#include <sys/systm.h>
|
||||
|
@ -903,11 +903,7 @@ const struct vnodeopv_desc cd9660_vnodeop_opv_desc =
|
|||
int (**cd9660_specop_p)(void *);
|
||||
const struct vnodeopv_entry_desc cd9660_specop_entries[] = {
|
||||
{ &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_open_desc, spec_open }, /* open */
|
||||
GENFS_SPECOP_ENTRIES,
|
||||
{ &vop_close_desc, spec_close }, /* close */
|
||||
{ &vop_access_desc, cd9660_access }, /* access */
|
||||
{ &vop_accessx_desc, genfs_accessx }, /* accessx */
|
||||
|
@ -915,38 +911,15 @@ const struct vnodeopv_entry_desc cd9660_specop_entries[] = {
|
|||
{ &vop_setattr_desc, cd9660_setattr }, /* setattr */
|
||||
{ &vop_read_desc, spec_read }, /* read */
|
||||
{ &vop_write_desc, spec_write }, /* write */
|
||||
{ &vop_fallocate_desc, spec_fallocate }, /* fallocate */
|
||||
{ &vop_fdiscard_desc, spec_fdiscard }, /* fdiscard */
|
||||
{ &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_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_inactive_desc, cd9660_inactive }, /* inactive */
|
||||
{ &vop_reclaim_desc, cd9660_reclaim }, /* reclaim */
|
||||
{ &vop_lock_desc, genfs_lock }, /* lock */
|
||||
{ &vop_unlock_desc, genfs_unlock }, /* unlock */
|
||||
{ &vop_bmap_desc, spec_bmap }, /* bmap */
|
||||
{ &vop_strategy_desc, spec_strategy }, /* strategy */
|
||||
{ &vop_print_desc, cd9660_print }, /* print */
|
||||
{ &vop_islocked_desc, genfs_islocked }, /* islocked */
|
||||
{ &vop_pathconf_desc, spec_pathconf }, /* pathconf */
|
||||
{ &vop_advlock_desc, spec_advlock }, /* advlock */
|
||||
{ &vop_bwrite_desc, vn_bwrite }, /* bwrite */
|
||||
{ &vop_getpages_desc, spec_getpages }, /* getpages */
|
||||
{ &vop_putpages_desc, spec_putpages }, /* putpages */
|
||||
{ NULL, NULL }
|
||||
};
|
||||
const struct vnodeopv_desc cd9660_specop_opv_desc =
|
||||
|
@ -955,11 +928,7 @@ const struct vnodeopv_desc cd9660_specop_opv_desc =
|
|||
int (**cd9660_fifoop_p)(void *);
|
||||
const struct vnodeopv_entry_desc cd9660_fifoop_entries[] = {
|
||||
{ &vop_default_desc, vn_default_error },
|
||||
{ &vop_parsepath_desc, genfs_parsepath }, /* parsepath */
|
||||
{ &vop_lookup_desc, vn_fifo_bypass }, /* lookup */
|
||||
{ &vop_create_desc, vn_fifo_bypass }, /* create */
|
||||
{ &vop_mknod_desc, vn_fifo_bypass }, /* mknod */
|
||||
{ &vop_open_desc, vn_fifo_bypass }, /* open */
|
||||
GENFS_FIFOOP_ENTRIES,
|
||||
{ &vop_close_desc, vn_fifo_bypass }, /* close */
|
||||
{ &vop_access_desc, cd9660_access }, /* access */
|
||||
{ &vop_accessx_desc, genfs_accessx }, /* accessx */
|
||||
|
@ -967,37 +936,16 @@ const struct vnodeopv_entry_desc cd9660_fifoop_entries[] = {
|
|||
{ &vop_setattr_desc, cd9660_setattr }, /* setattr */
|
||||
{ &vop_read_desc, vn_fifo_bypass }, /* read */
|
||||
{ &vop_write_desc, vn_fifo_bypass }, /* write */
|
||||
{ &vop_fallocate_desc, vn_fifo_bypass }, /* fallocate */
|
||||
{ &vop_fdiscard_desc, vn_fifo_bypass }, /* fdiscard */
|
||||
{ &vop_fcntl_desc, genfs_fcntl }, /* fcntl */
|
||||
{ &vop_ioctl_desc, vn_fifo_bypass }, /* ioctl */
|
||||
{ &vop_poll_desc, vn_fifo_bypass }, /* poll */
|
||||
{ &vop_kqfilter_desc, vn_fifo_bypass }, /* kqfilter */
|
||||
{ &vop_revoke_desc, vn_fifo_bypass }, /* revoke */
|
||||
{ &vop_mmap_desc, vn_fifo_bypass }, /* mmap */
|
||||
{ &vop_fsync_desc, vn_fifo_bypass }, /* fsync */
|
||||
{ &vop_seek_desc, vn_fifo_bypass }, /* seek */
|
||||
{ &vop_remove_desc, vn_fifo_bypass }, /* remove */
|
||||
{ &vop_link_desc, vn_fifo_bypass } , /* link */
|
||||
{ &vop_rename_desc, vn_fifo_bypass }, /* rename */
|
||||
{ &vop_mkdir_desc, vn_fifo_bypass }, /* mkdir */
|
||||
{ &vop_rmdir_desc, vn_fifo_bypass }, /* rmdir */
|
||||
{ &vop_symlink_desc, vn_fifo_bypass }, /* symlink */
|
||||
{ &vop_readdir_desc, vn_fifo_bypass }, /* readdir */
|
||||
{ &vop_readlink_desc, vn_fifo_bypass }, /* readlink */
|
||||
{ &vop_abortop_desc, vn_fifo_bypass }, /* abortop */
|
||||
{ &vop_inactive_desc, cd9660_inactive }, /* inactive */
|
||||
{ &vop_reclaim_desc, cd9660_reclaim }, /* reclaim */
|
||||
{ &vop_lock_desc, genfs_lock }, /* lock */
|
||||
{ &vop_unlock_desc, genfs_unlock }, /* unlock */
|
||||
{ &vop_bmap_desc, vn_fifo_bypass }, /* bmap */
|
||||
{ &vop_strategy_desc, vn_fifo_bypass }, /* strategy */
|
||||
{ &vop_print_desc, cd9660_print }, /* print */
|
||||
{ &vop_islocked_desc, genfs_islocked }, /* islocked */
|
||||
{ &vop_pathconf_desc, vn_fifo_bypass }, /* pathconf */
|
||||
{ &vop_advlock_desc, vn_fifo_bypass }, /* advlock */
|
||||
{ &vop_bwrite_desc, vn_bwrite }, /* bwrite */
|
||||
{ &vop_putpages_desc, vn_fifo_bypass }, /* putpages */
|
||||
{ NULL, NULL }
|
||||
};
|
||||
const struct vnodeopv_desc cd9660_fifoop_opv_desc =
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
/* $NetBSD: efs_vnops.c,v 1.42 2021/06/29 22:34:06 dholland Exp $ */
|
||||
/* $NetBSD: efs_vnops.c,v 1.43 2021/07/18 23:56:13 dholland Exp $ */
|
||||
|
||||
/*
|
||||
* Copyright (c) 2006 Stephen M. Rumble <rumble@ephemeral.org>
|
||||
|
@ -17,7 +17,7 @@
|
|||
*/
|
||||
|
||||
#include <sys/cdefs.h>
|
||||
__KERNEL_RCSID(0, "$NetBSD: efs_vnops.c,v 1.42 2021/06/29 22:34:06 dholland Exp $");
|
||||
__KERNEL_RCSID(0, "$NetBSD: efs_vnops.c,v 1.43 2021/07/18 23:56:13 dholland Exp $");
|
||||
|
||||
#include <sys/param.h>
|
||||
#include <sys/systm.h>
|
||||
|
@ -843,11 +843,7 @@ const struct vnodeopv_desc efs_vnodeop_opv_desc = {
|
|||
int (**efs_specop_p)(void *);
|
||||
const struct vnodeopv_entry_desc efs_specop_entries[] = {
|
||||
{ &vop_default_desc, vn_default_error}, /* error handler */
|
||||
{ &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_open_desc, spec_open }, /* open */
|
||||
GENFS_SPECOP_ENTRIES,
|
||||
{ &vop_close_desc, spec_close }, /* close */
|
||||
{ &vop_access_desc, efs_access }, /* access */
|
||||
{ &vop_accessx_desc, genfs_accessx }, /* accessx */
|
||||
|
@ -855,44 +851,15 @@ const struct vnodeopv_entry_desc efs_specop_entries[] = {
|
|||
{ &vop_setattr_desc, genfs_eopnotsupp}, /* setattr */
|
||||
{ &vop_read_desc, spec_read }, /* read */
|
||||
{ &vop_write_desc, spec_write }, /* write */
|
||||
{ &vop_fallocate_desc, spec_fallocate }, /* fallocate */
|
||||
{ &vop_fdiscard_desc, spec_fdiscard }, /* fdiscard */
|
||||
{ &vop_ioctl_desc, spec_ioctl }, /* ioctl */
|
||||
{ &vop_fcntl_desc, genfs_fcntl }, /* fcntl */
|
||||
{ &vop_poll_desc, spec_poll }, /* poll */
|
||||
{ &vop_kqfilter_desc, spec_kqfilter }, /* kqfilter */
|
||||
{ &vop_revoke_desc, spec_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_inactive_desc, efs_inactive }, /* inactive */
|
||||
{ &vop_reclaim_desc, efs_reclaim }, /* reclaim */
|
||||
{ &vop_lock_desc, genfs_lock, }, /* lock */
|
||||
{ &vop_unlock_desc, genfs_unlock, }, /* unlock */
|
||||
{ &vop_islocked_desc, genfs_islocked, }, /* islocked */
|
||||
{ &vop_bmap_desc, spec_bmap }, /* bmap */
|
||||
{ &vop_print_desc, efs_print }, /* print */
|
||||
{ &vop_pathconf_desc, spec_pathconf }, /* pathconf */
|
||||
{ &vop_advlock_desc, spec_advlock }, /* advlock */
|
||||
/* blkatoff */
|
||||
/* valloc */
|
||||
/* balloc */
|
||||
/* vfree */
|
||||
/* truncate */
|
||||
/* whiteout */
|
||||
{ &vop_getpages_desc, spec_getpages }, /* getpages */
|
||||
{ &vop_putpages_desc, spec_putpages }, /* putpages */
|
||||
{ &vop_bwrite_desc, vn_bwrite }, /* bwrite */
|
||||
{ &vop_strategy_desc, spec_strategy }, /* strategy */
|
||||
{ NULL, NULL }
|
||||
};
|
||||
const struct vnodeopv_desc efs_specop_opv_desc = {
|
||||
|
@ -903,11 +870,7 @@ const struct vnodeopv_desc efs_specop_opv_desc = {
|
|||
int (**efs_fifoop_p)(void *);
|
||||
const struct vnodeopv_entry_desc efs_fifoop_entries[] = {
|
||||
{ &vop_default_desc, vn_default_error}, /* error handler */
|
||||
{ &vop_parsepath_desc, genfs_parsepath }, /* parsepath */
|
||||
{ &vop_lookup_desc, vn_fifo_bypass }, /* lookup */
|
||||
{ &vop_create_desc, vn_fifo_bypass }, /* create */
|
||||
{ &vop_mknod_desc, vn_fifo_bypass }, /* mknod */
|
||||
{ &vop_open_desc, vn_fifo_bypass }, /* open */
|
||||
GENFS_FIFOOP_ENTRIES,
|
||||
{ &vop_close_desc, vn_fifo_bypass }, /* close */
|
||||
{ &vop_access_desc, efs_access }, /* access */
|
||||
{ &vop_accessx_desc, genfs_accessx }, /* accessx */
|
||||
|
@ -915,42 +878,16 @@ const struct vnodeopv_entry_desc efs_fifoop_entries[] = {
|
|||
{ &vop_setattr_desc, genfs_eopnotsupp}, /* setattr */
|
||||
{ &vop_read_desc, vn_fifo_bypass }, /* read */
|
||||
{ &vop_write_desc, vn_fifo_bypass }, /* write */
|
||||
{ &vop_fallocate_desc, vn_fifo_bypass }, /* fallocate */
|
||||
{ &vop_fdiscard_desc, vn_fifo_bypass }, /* fdiscard */
|
||||
{ &vop_ioctl_desc, vn_fifo_bypass }, /* ioctl */
|
||||
{ &vop_fcntl_desc, genfs_fcntl }, /* fcntl */
|
||||
{ &vop_poll_desc, vn_fifo_bypass }, /* poll */
|
||||
{ &vop_kqfilter_desc, vn_fifo_bypass }, /* kqfilter */
|
||||
{ &vop_revoke_desc, vn_fifo_bypass }, /* revoke */
|
||||
{ &vop_mmap_desc, vn_fifo_bypass }, /* mmap */
|
||||
{ &vop_fsync_desc, vn_fifo_bypass }, /* fsync */
|
||||
{ &vop_seek_desc, vn_fifo_bypass }, /* seek */
|
||||
{ &vop_remove_desc, vn_fifo_bypass }, /* remove */
|
||||
{ &vop_link_desc, vn_fifo_bypass }, /* link */
|
||||
{ &vop_rename_desc, vn_fifo_bypass }, /* rename */
|
||||
{ &vop_mkdir_desc, vn_fifo_bypass }, /* mkdir */
|
||||
{ &vop_rmdir_desc, vn_fifo_bypass }, /* rmdir */
|
||||
{ &vop_symlink_desc, vn_fifo_bypass }, /* symlink */
|
||||
{ &vop_readdir_desc, vn_fifo_bypass }, /* readdir */
|
||||
{ &vop_readlink_desc, vn_fifo_bypass }, /* readlink */
|
||||
{ &vop_abortop_desc, vn_fifo_bypass }, /* abortop */
|
||||
{ &vop_inactive_desc, efs_inactive }, /* inactive */
|
||||
{ &vop_reclaim_desc, efs_reclaim }, /* reclaim */
|
||||
{ &vop_lock_desc, genfs_lock, }, /* lock */
|
||||
{ &vop_unlock_desc, genfs_unlock, }, /* unlock */
|
||||
{ &vop_islocked_desc, genfs_islocked, }, /* islocked */
|
||||
{ &vop_bmap_desc, vn_fifo_bypass }, /* bmap */
|
||||
{ &vop_strategy_desc, vn_fifo_bypass }, /* strategy */
|
||||
{ &vop_print_desc, efs_print }, /* print */
|
||||
{ &vop_pathconf_desc, vn_fifo_bypass }, /* pathconf */
|
||||
{ &vop_advlock_desc, vn_fifo_bypass }, /* advlock */
|
||||
/* blkatoff */
|
||||
/* valloc */
|
||||
/* balloc */
|
||||
/* vfree */
|
||||
/* truncate */
|
||||
/* whiteout */
|
||||
{ &vop_bwrite_desc, vn_bwrite }, /* bwrite */
|
||||
{ &vop_strategy_desc, vn_fifo_bypass }, /* strategy */
|
||||
{ NULL, NULL }
|
||||
};
|
||||
const struct vnodeopv_desc efs_fifoop_opv_desc = {
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
/* $NetBSD: hfs_vnops.c,v 1.38 2021/06/29 22:37:50 dholland Exp $ */
|
||||
/* $NetBSD: hfs_vnops.c,v 1.39 2021/07/18 23:56:13 dholland Exp $ */
|
||||
|
||||
/*-
|
||||
* Copyright (c) 2005, 2007 The NetBSD Foundation, Inc.
|
||||
|
@ -101,7 +101,7 @@
|
|||
*/
|
||||
|
||||
#include <sys/cdefs.h>
|
||||
__KERNEL_RCSID(0, "$NetBSD: hfs_vnops.c,v 1.38 2021/06/29 22:37:50 dholland Exp $");
|
||||
__KERNEL_RCSID(0, "$NetBSD: hfs_vnops.c,v 1.39 2021/07/18 23:56:13 dholland Exp $");
|
||||
|
||||
#ifdef _KERNEL_OPT
|
||||
#include "opt_ipsec.h"
|
||||
|
@ -215,11 +215,7 @@ const struct vnodeopv_desc hfs_vnodeop_opv_desc =
|
|||
int (**hfs_specop_p) (void *);
|
||||
const struct vnodeopv_entry_desc hfs_specop_entries[] = {
|
||||
{ &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_open_desc, spec_open }, /* open */
|
||||
GENFS_SPECOP_ENTRIES,
|
||||
{ &vop_close_desc, spec_close }, /* close */
|
||||
{ &vop_access_desc, hfs_vop_access }, /* access */
|
||||
{ &vop_accessx_desc, genfs_accessx }, /* accessx */
|
||||
|
@ -227,45 +223,22 @@ const struct vnodeopv_entry_desc hfs_specop_entries[] = {
|
|||
{ &vop_setattr_desc, hfs_vop_setattr }, /* setattr */
|
||||
{ &vop_read_desc, spec_read }, /* read */
|
||||
{ &vop_write_desc, spec_write }, /* write */
|
||||
{ &vop_fallocate_desc, spec_fallocate }, /* fallocate */
|
||||
{ &vop_fdiscard_desc, spec_fdiscard }, /* fdiscard */
|
||||
{ &vop_ioctl_desc, spec_ioctl }, /* ioctl */
|
||||
{ &vop_fcntl_desc, genfs_fcntl }, /* fcntl */
|
||||
{ &vop_poll_desc, spec_poll }, /* poll */
|
||||
{ &vop_kqfilter_desc, spec_kqfilter }, /* kqfilter */
|
||||
{ &vop_revoke_desc, spec_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_inactive_desc, genfs_eopnotsupp }, /* inactive */
|
||||
{ &vop_reclaim_desc, hfs_vop_reclaim }, /* reclaim */
|
||||
{ &vop_lock_desc, genfs_lock }, /* lock */
|
||||
{ &vop_unlock_desc, genfs_unlock }, /* unlock */
|
||||
{ &vop_bmap_desc, spec_bmap }, /* bmap */
|
||||
{ &vop_strategy_desc, spec_strategy }, /* strategy */
|
||||
{ &vop_print_desc, hfs_vop_print }, /* print */
|
||||
{ &vop_islocked_desc, genfs_islocked }, /* islocked */
|
||||
{ &vop_pathconf_desc, spec_pathconf }, /* pathconf */
|
||||
{ &vop_advlock_desc, spec_advlock }, /* advlock */
|
||||
{ &vop_bwrite_desc, vn_bwrite }, /* bwrite */
|
||||
{ &vop_getpages_desc, spec_getpages }, /* getpages */
|
||||
{ &vop_putpages_desc, spec_putpages }, /* putpages */
|
||||
#if 0
|
||||
{ &vop_openextattr_desc, ffs_openextattr }, /* openextattr */
|
||||
{ &vop_closeextattr_desc, ffs_closeextattr }, /* closeextattr */
|
||||
{ &vop_getextattr_desc, ffs_getextattr }, /* getextattr */
|
||||
{ &vop_setextattr_desc, ffs_setextattr }, /* setextattr */
|
||||
{ &vop_listextattr_desc, ffs_listextattr }, /* listextattr */
|
||||
{ &vop_deleteextattr_desc, ffs_deleteextattr }, /* deleteextattr */
|
||||
{ &vop_openextattr_desc, hfs_openextattr }, /* openextattr */
|
||||
{ &vop_closeextattr_desc, hfs_closeextattr }, /* closeextattr */
|
||||
{ &vop_getextattr_desc, hfs_getextattr }, /* getextattr */
|
||||
{ &vop_setextattr_desc, hfs_setextattr }, /* setextattr */
|
||||
{ &vop_listextattr_desc, hfs_listextattr }, /* listextattr */
|
||||
{ &vop_deleteextattr_desc, hfs_deleteextattr }, /* deleteextattr */
|
||||
#endif
|
||||
{ NULL, NULL }
|
||||
};
|
||||
|
@ -275,11 +248,7 @@ const struct vnodeopv_desc hfs_specop_opv_desc =
|
|||
int (**hfs_fifoop_p) (void *);
|
||||
const struct vnodeopv_entry_desc hfs_fifoop_entries[] = {
|
||||
{ &vop_default_desc, vn_default_error },
|
||||
{ &vop_parsepath_desc, genfs_parsepath }, /* parsepath */
|
||||
{ &vop_lookup_desc, vn_fifo_bypass }, /* lookup */
|
||||
{ &vop_create_desc, vn_fifo_bypass }, /* create */
|
||||
{ &vop_mknod_desc, vn_fifo_bypass }, /* mknod */
|
||||
{ &vop_open_desc, vn_fifo_bypass }, /* open */
|
||||
GENFS_FIFOOP_ENTRIES,
|
||||
{ &vop_close_desc, vn_fifo_bypass }, /* close */
|
||||
{ &vop_access_desc, hfs_vop_access }, /* access */
|
||||
{ &vop_accessx_desc, genfs_accessx }, /* accessx */
|
||||
|
@ -287,44 +256,23 @@ const struct vnodeopv_entry_desc hfs_fifoop_entries[] = {
|
|||
{ &vop_setattr_desc, hfs_vop_setattr }, /* setattr */
|
||||
{ &vop_read_desc, vn_fifo_bypass }, /* read */
|
||||
{ &vop_write_desc, vn_fifo_bypass }, /* write */
|
||||
{ &vop_fallocate_desc, vn_fifo_bypass }, /* fallocate */
|
||||
{ &vop_fdiscard_desc, vn_fifo_bypass }, /* fdiscard */
|
||||
{ &vop_ioctl_desc, vn_fifo_bypass }, /* ioctl */
|
||||
{ &vop_fcntl_desc, genfs_fcntl }, /* fcntl */
|
||||
{ &vop_poll_desc, vn_fifo_bypass }, /* poll */
|
||||
{ &vop_kqfilter_desc, vn_fifo_bypass }, /* kqfilter */
|
||||
{ &vop_revoke_desc, vn_fifo_bypass }, /* revoke */
|
||||
{ &vop_mmap_desc, vn_fifo_bypass }, /* mmap */
|
||||
{ &vop_fsync_desc, vn_fifo_bypass }, /* fsync */
|
||||
{ &vop_seek_desc, vn_fifo_bypass }, /* seek */
|
||||
{ &vop_remove_desc, vn_fifo_bypass }, /* remove */
|
||||
{ &vop_link_desc, vn_fifo_bypass }, /* link */
|
||||
{ &vop_rename_desc, vn_fifo_bypass }, /* rename */
|
||||
{ &vop_mkdir_desc, vn_fifo_bypass }, /* mkdir */
|
||||
{ &vop_rmdir_desc, vn_fifo_bypass }, /* rmdir */
|
||||
{ &vop_symlink_desc, vn_fifo_bypass }, /* symlink */
|
||||
{ &vop_readdir_desc, vn_fifo_bypass }, /* readdir */
|
||||
{ &vop_readlink_desc, vn_fifo_bypass }, /* readlink */
|
||||
{ &vop_abortop_desc, vn_fifo_bypass }, /* abortop */
|
||||
{ &vop_inactive_desc, genfs_eopnotsupp }, /* inactive */
|
||||
{ &vop_reclaim_desc, hfs_vop_reclaim }, /* reclaim */
|
||||
{ &vop_lock_desc, genfs_lock }, /* lock */
|
||||
{ &vop_unlock_desc, genfs_unlock }, /* unlock */
|
||||
{ &vop_bmap_desc, vn_fifo_bypass }, /* bmap */
|
||||
{ &vop_strategy_desc, vn_fifo_bypass }, /* strategy */
|
||||
{ &vop_print_desc, hfs_vop_print }, /* print */
|
||||
{ &vop_islocked_desc, genfs_islocked }, /* islocked */
|
||||
{ &vop_pathconf_desc, vn_fifo_bypass }, /* pathconf */
|
||||
{ &vop_advlock_desc, vn_fifo_bypass }, /* advlock */
|
||||
{ &vop_bwrite_desc, vn_bwrite }, /* bwrite */
|
||||
{ &vop_putpages_desc, vn_fifo_bypass }, /* putpages */
|
||||
#if 0
|
||||
{ &vop_openextattr_desc, ffs_openextattr }, /* openextattr */
|
||||
{ &vop_closeextattr_desc, ffs_closeextattr }, /* closeextattr */
|
||||
{ &vop_getextattr_desc, ffs_getextattr }, /* getextattr */
|
||||
{ &vop_setextattr_desc, ffs_setextattr }, /* setextattr */
|
||||
{ &vop_listextattr_desc, ffs_listextattr }, /* listextattr */
|
||||
{ &vop_deleteextattr_desc, ffs_deleteextattr }, /* deleteextattr */
|
||||
{ &vop_openextattr_desc, hfs_openextattr }, /* openextattr */
|
||||
{ &vop_closeextattr_desc, hfs_closeextattr }, /* closeextattr */
|
||||
{ &vop_getextattr_desc, hfs_getextattr }, /* getextattr */
|
||||
{ &vop_setextattr_desc, hfs_setextattr }, /* setextattr */
|
||||
{ &vop_listextattr_desc, hfs_listextattr }, /* listextattr */
|
||||
{ &vop_deleteextattr_desc, hfs_deleteextattr }, /* deleteextattr */
|
||||
#endif
|
||||
{ NULL, NULL }
|
||||
};
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
/* $NetBSD: puffs_vnops.c,v 1.219 2021/06/29 22:39:20 dholland Exp $ */
|
||||
/* $NetBSD: puffs_vnops.c,v 1.220 2021/07/18 23:56:13 dholland Exp $ */
|
||||
|
||||
/*
|
||||
* Copyright (c) 2005, 2006, 2007 Antti Kantee. All Rights Reserved.
|
||||
|
@ -30,7 +30,7 @@
|
|||
*/
|
||||
|
||||
#include <sys/cdefs.h>
|
||||
__KERNEL_RCSID(0, "$NetBSD: puffs_vnops.c,v 1.219 2021/06/29 22:39:20 dholland Exp $");
|
||||
__KERNEL_RCSID(0, "$NetBSD: puffs_vnops.c,v 1.220 2021/07/18 23:56:13 dholland Exp $");
|
||||
|
||||
#include <sys/param.h>
|
||||
#include <sys/buf.h>
|
||||
|
@ -164,11 +164,7 @@ const struct vnodeopv_desc puffs_vnodeop_opv_desc =
|
|||
int (**puffs_specop_p)(void *);
|
||||
const struct vnodeopv_entry_desc puffs_specop_entries[] = {
|
||||
{ &vop_default_desc, vn_default_error },
|
||||
{ &vop_parsepath_desc, genfs_parsepath }, /* parsepath */
|
||||
{ &vop_lookup_desc, spec_lookup }, /* lookup, ENOTDIR */
|
||||
{ &vop_create_desc, spec_create }, /* genfs_badop */
|
||||
{ &vop_mknod_desc, spec_mknod }, /* genfs_badop */
|
||||
{ &vop_open_desc, spec_open }, /* spec_open */
|
||||
GENFS_SPECOP_ENTRIES,
|
||||
{ &vop_close_desc, spec_close }, /* spec_close */
|
||||
{ &vop_access_desc, puffs_vnop_checkop }, /* access */
|
||||
{ &vop_accessx_desc, genfs_accessx }, /* accessx */
|
||||
|
@ -176,38 +172,15 @@ const struct vnodeopv_entry_desc puffs_specop_entries[] = {
|
|||
{ &vop_setattr_desc, puffs_vnop_checkop }, /* setattr */
|
||||
{ &vop_read_desc, puffs_vnop_spec_read }, /* update, read */
|
||||
{ &vop_write_desc, puffs_vnop_spec_write }, /* update, write */
|
||||
{ &vop_fallocate_desc, spec_fallocate }, /* fallocate */
|
||||
{ &vop_fdiscard_desc, spec_fdiscard }, /* fdiscard */
|
||||
{ &vop_ioctl_desc, spec_ioctl }, /* spec_ioctl */
|
||||
{ &vop_fcntl_desc, genfs_fcntl }, /* dummy */
|
||||
{ &vop_poll_desc, spec_poll }, /* spec_poll */
|
||||
{ &vop_kqfilter_desc, spec_kqfilter }, /* spec_kqfilter */
|
||||
{ &vop_revoke_desc, spec_revoke }, /* genfs_revoke */
|
||||
{ &vop_mmap_desc, spec_mmap }, /* spec_mmap */
|
||||
{ &vop_fsync_desc, spec_fsync }, /* vflushbuf */
|
||||
{ &vop_seek_desc, spec_seek }, /* genfs_nullop */
|
||||
{ &vop_remove_desc, spec_remove }, /* genfs_badop */
|
||||
{ &vop_link_desc, spec_link }, /* genfs_badop */
|
||||
{ &vop_rename_desc, spec_rename }, /* genfs_badop */
|
||||
{ &vop_mkdir_desc, spec_mkdir }, /* genfs_badop */
|
||||
{ &vop_rmdir_desc, spec_rmdir }, /* genfs_badop */
|
||||
{ &vop_symlink_desc, spec_symlink }, /* genfs_badop */
|
||||
{ &vop_readdir_desc, spec_readdir }, /* genfs_badop */
|
||||
{ &vop_readlink_desc, spec_readlink }, /* genfs_badop */
|
||||
{ &vop_abortop_desc, spec_abortop }, /* genfs_badop */
|
||||
{ &vop_inactive_desc, puffs_vnop_inactive }, /* REAL inactive */
|
||||
{ &vop_reclaim_desc, puffs_vnop_reclaim }, /* REAL reclaim */
|
||||
{ &vop_lock_desc, puffs_vnop_lock }, /* REAL lock */
|
||||
{ &vop_unlock_desc, puffs_vnop_unlock }, /* REAL unlock */
|
||||
{ &vop_bmap_desc, spec_bmap }, /* dummy */
|
||||
{ &vop_strategy_desc, spec_strategy }, /* dev strategy */
|
||||
{ &vop_print_desc, puffs_vnop_print }, /* REAL print */
|
||||
{ &vop_islocked_desc, puffs_vnop_islocked }, /* REAL islocked */
|
||||
{ &vop_pathconf_desc, spec_pathconf }, /* pathconf */
|
||||
{ &vop_advlock_desc, spec_advlock }, /* lf_advlock */
|
||||
{ &vop_bwrite_desc, vn_bwrite }, /* bwrite */
|
||||
{ &vop_getpages_desc, spec_getpages }, /* genfs_getpages */
|
||||
{ &vop_putpages_desc, spec_putpages }, /* genfs_putpages */
|
||||
{ &vop_getextattr_desc, puffs_vnop_checkop }, /* getextattr */
|
||||
{ &vop_setextattr_desc, puffs_vnop_checkop }, /* setextattr */
|
||||
{ &vop_listextattr_desc, puffs_vnop_checkop }, /* listextattr */
|
||||
|
@ -225,11 +198,7 @@ const struct vnodeopv_desc puffs_specop_opv_desc =
|
|||
int (**puffs_fifoop_p)(void *);
|
||||
const struct vnodeopv_entry_desc puffs_fifoop_entries[] = {
|
||||
{ &vop_default_desc, vn_default_error },
|
||||
{ &vop_parsepath_desc, genfs_parsepath }, /* parsepath */
|
||||
{ &vop_lookup_desc, vn_fifo_bypass }, /* lookup, ENOTDIR */
|
||||
{ &vop_create_desc, vn_fifo_bypass }, /* genfs_badop */
|
||||
{ &vop_mknod_desc, vn_fifo_bypass }, /* genfs_badop */
|
||||
{ &vop_open_desc, vn_fifo_bypass }, /* open */
|
||||
GENFS_FIFOOP_ENTRIES,
|
||||
{ &vop_close_desc, vn_fifo_bypass }, /* close */
|
||||
{ &vop_access_desc, puffs_vnop_checkop }, /* access */
|
||||
{ &vop_accessx_desc, genfs_accessx }, /* accessx */
|
||||
|
@ -237,37 +206,16 @@ const struct vnodeopv_entry_desc puffs_fifoop_entries[] = {
|
|||
{ &vop_setattr_desc, puffs_vnop_checkop }, /* setattr */
|
||||
{ &vop_read_desc, puffs_vnop_fifo_read }, /* read, update */
|
||||
{ &vop_write_desc, puffs_vnop_fifo_write }, /* write, update */
|
||||
{ &vop_fallocate_desc, vn_fifo_bypass }, /* fallocate */
|
||||
{ &vop_fdiscard_desc, vn_fifo_bypass }, /* fdiscard */
|
||||
{ &vop_ioctl_desc, vn_fifo_bypass }, /* ioctl */
|
||||
{ &vop_fcntl_desc, genfs_fcntl }, /* dummy */
|
||||
{ &vop_poll_desc, vn_fifo_bypass }, /* poll */
|
||||
{ &vop_kqfilter_desc, vn_fifo_bypass }, /* kqfilter */
|
||||
{ &vop_revoke_desc, vn_fifo_bypass }, /* genfs_revoke */
|
||||
{ &vop_mmap_desc, vn_fifo_bypass }, /* genfs_badop */
|
||||
{ &vop_fsync_desc, vn_fifo_bypass }, /* genfs_nullop*/
|
||||
{ &vop_seek_desc, vn_fifo_bypass }, /* genfs_badop */
|
||||
{ &vop_remove_desc, vn_fifo_bypass }, /* genfs_badop */
|
||||
{ &vop_link_desc, vn_fifo_bypass }, /* genfs_badop */
|
||||
{ &vop_rename_desc, vn_fifo_bypass }, /* genfs_badop */
|
||||
{ &vop_mkdir_desc, vn_fifo_bypass }, /* genfs_badop */
|
||||
{ &vop_rmdir_desc, vn_fifo_bypass }, /* genfs_badop */
|
||||
{ &vop_symlink_desc, vn_fifo_bypass }, /* genfs_badop */
|
||||
{ &vop_readdir_desc, vn_fifo_bypass }, /* genfs_badop */
|
||||
{ &vop_readlink_desc, vn_fifo_bypass }, /* genfs_badop */
|
||||
{ &vop_abortop_desc, vn_fifo_bypass }, /* genfs_badop */
|
||||
{ &vop_inactive_desc, puffs_vnop_inactive }, /* REAL inactive */
|
||||
{ &vop_reclaim_desc, puffs_vnop_reclaim }, /* REAL reclaim */
|
||||
{ &vop_lock_desc, puffs_vnop_lock }, /* REAL lock */
|
||||
{ &vop_unlock_desc, puffs_vnop_unlock }, /* REAL unlock */
|
||||
{ &vop_bmap_desc, vn_fifo_bypass }, /* dummy */
|
||||
{ &vop_strategy_desc, vn_fifo_bypass }, /* genfs_badop */
|
||||
{ &vop_print_desc, puffs_vnop_print }, /* REAL print */
|
||||
{ &vop_islocked_desc, puffs_vnop_islocked }, /* REAL islocked */
|
||||
{ &vop_pathconf_desc, vn_fifo_bypass }, /* pathconf */
|
||||
{ &vop_advlock_desc, vn_fifo_bypass }, /* genfs_einval */
|
||||
{ &vop_bwrite_desc, vn_bwrite }, /* bwrite */
|
||||
{ &vop_putpages_desc, vn_fifo_bypass }, /* genfs_null_putpages*/
|
||||
#if 0
|
||||
{ &vop_openextattr_desc, _openextattr }, /* openextattr */
|
||||
{ &vop_closeextattr_desc, _closeextattr }, /* closeextattr */
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
/* $NetBSD: tmpfs_fifoops.c,v 1.13 2021/06/29 22:34:07 dholland Exp $ */
|
||||
/* $NetBSD: tmpfs_fifoops.c,v 1.14 2021/07/18 23:56:13 dholland Exp $ */
|
||||
|
||||
/*
|
||||
* Copyright (c) 2005 The NetBSD Foundation, Inc.
|
||||
|
@ -35,7 +35,7 @@
|
|||
*/
|
||||
|
||||
#include <sys/cdefs.h>
|
||||
__KERNEL_RCSID(0, "$NetBSD: tmpfs_fifoops.c,v 1.13 2021/06/29 22:34:07 dholland Exp $");
|
||||
__KERNEL_RCSID(0, "$NetBSD: tmpfs_fifoops.c,v 1.14 2021/07/18 23:56:13 dholland Exp $");
|
||||
|
||||
#include <sys/param.h>
|
||||
#include <sys/vnode.h>
|
||||
|
@ -49,11 +49,7 @@ __KERNEL_RCSID(0, "$NetBSD: tmpfs_fifoops.c,v 1.13 2021/06/29 22:34:07 dholland
|
|||
int (**tmpfs_fifoop_p)(void *);
|
||||
const struct vnodeopv_entry_desc tmpfs_fifoop_entries[] = {
|
||||
{ &vop_default_desc, vn_default_error },
|
||||
{ &vop_parsepath_desc, genfs_parsepath },
|
||||
{ &vop_lookup_desc, tmpfs_fifo_lookup },
|
||||
{ &vop_create_desc, tmpfs_fifo_create },
|
||||
{ &vop_mknod_desc, tmpfs_fifo_mknod },
|
||||
{ &vop_open_desc, tmpfs_fifo_open },
|
||||
GENFS_FIFOOP_ENTRIES,
|
||||
{ &vop_close_desc, tmpfs_fifo_close },
|
||||
{ &vop_access_desc, tmpfs_fifo_access },
|
||||
{ &vop_accessx_desc, genfs_accessx },
|
||||
|
@ -61,38 +57,16 @@ const struct vnodeopv_entry_desc tmpfs_fifoop_entries[] = {
|
|||
{ &vop_setattr_desc, tmpfs_fifo_setattr },
|
||||
{ &vop_read_desc, tmpfs_fifo_read },
|
||||
{ &vop_write_desc, tmpfs_fifo_write },
|
||||
{ &vop_fallocate_desc, vn_fifo_bypass },
|
||||
{ &vop_fdiscard_desc, vn_fifo_bypass },
|
||||
{ &vop_ioctl_desc, tmpfs_fifo_ioctl },
|
||||
{ &vop_fcntl_desc, tmpfs_fifo_fcntl },
|
||||
{ &vop_poll_desc, tmpfs_fifo_poll },
|
||||
{ &vop_kqfilter_desc, tmpfs_fifo_kqfilter },
|
||||
{ &vop_revoke_desc, tmpfs_fifo_revoke },
|
||||
{ &vop_mmap_desc, tmpfs_fifo_mmap },
|
||||
{ &vop_fsync_desc, tmpfs_fifo_fsync },
|
||||
{ &vop_seek_desc, tmpfs_fifo_seek },
|
||||
{ &vop_remove_desc, tmpfs_fifo_remove },
|
||||
{ &vop_link_desc, tmpfs_fifo_link },
|
||||
{ &vop_rename_desc, tmpfs_fifo_rename },
|
||||
{ &vop_mkdir_desc, tmpfs_fifo_mkdir },
|
||||
{ &vop_rmdir_desc, tmpfs_fifo_rmdir },
|
||||
{ &vop_symlink_desc, tmpfs_fifo_symlink },
|
||||
{ &vop_readdir_desc, tmpfs_fifo_readdir },
|
||||
{ &vop_readlink_desc, tmpfs_fifo_readlink },
|
||||
{ &vop_abortop_desc, tmpfs_fifo_abortop },
|
||||
{ &vop_inactive_desc, tmpfs_fifo_inactive },
|
||||
{ &vop_reclaim_desc, tmpfs_fifo_reclaim },
|
||||
{ &vop_lock_desc, tmpfs_fifo_lock },
|
||||
{ &vop_unlock_desc, tmpfs_fifo_unlock },
|
||||
{ &vop_bmap_desc, tmpfs_fifo_bmap },
|
||||
{ &vop_strategy_desc, tmpfs_fifo_strategy },
|
||||
{ &vop_print_desc, tmpfs_fifo_print },
|
||||
{ &vop_pathconf_desc, tmpfs_fifo_pathconf },
|
||||
{ &vop_islocked_desc, tmpfs_fifo_islocked },
|
||||
{ &vop_advlock_desc, tmpfs_fifo_advlock },
|
||||
{ &vop_bwrite_desc, tmpfs_fifo_bwrite },
|
||||
{ &vop_getpages_desc, tmpfs_fifo_getpages },
|
||||
{ &vop_putpages_desc, tmpfs_fifo_putpages },
|
||||
{ NULL, NULL }
|
||||
};
|
||||
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
/* $NetBSD: tmpfs_specops.c,v 1.14 2021/06/29 22:34:07 dholland Exp $ */
|
||||
/* $NetBSD: tmpfs_specops.c,v 1.15 2021/07/18 23:56:13 dholland Exp $ */
|
||||
|
||||
/*
|
||||
* Copyright (c) 2005 The NetBSD Foundation, Inc.
|
||||
|
@ -35,7 +35,7 @@
|
|||
*/
|
||||
|
||||
#include <sys/cdefs.h>
|
||||
__KERNEL_RCSID(0, "$NetBSD: tmpfs_specops.c,v 1.14 2021/06/29 22:34:07 dholland Exp $");
|
||||
__KERNEL_RCSID(0, "$NetBSD: tmpfs_specops.c,v 1.15 2021/07/18 23:56:13 dholland Exp $");
|
||||
|
||||
#include <sys/param.h>
|
||||
#include <sys/vnode.h>
|
||||
|
@ -52,11 +52,7 @@ int (**tmpfs_specop_p)(void *);
|
|||
|
||||
const struct vnodeopv_entry_desc tmpfs_specop_entries[] = {
|
||||
{ &vop_default_desc, vn_default_error },
|
||||
{ &vop_parsepath_desc, genfs_parsepath },
|
||||
{ &vop_lookup_desc, tmpfs_spec_lookup },
|
||||
{ &vop_create_desc, tmpfs_spec_create },
|
||||
{ &vop_mknod_desc, tmpfs_spec_mknod },
|
||||
{ &vop_open_desc, tmpfs_spec_open },
|
||||
GENFS_SPECOP_ENTRIES,
|
||||
{ &vop_close_desc, tmpfs_spec_close },
|
||||
{ &vop_access_desc, tmpfs_spec_access },
|
||||
{ &vop_accessx_desc, genfs_accessx },
|
||||
|
@ -64,38 +60,15 @@ const struct vnodeopv_entry_desc tmpfs_specop_entries[] = {
|
|||
{ &vop_setattr_desc, tmpfs_spec_setattr },
|
||||
{ &vop_read_desc, tmpfs_spec_read },
|
||||
{ &vop_write_desc, tmpfs_spec_write },
|
||||
{ &vop_fallocate_desc, spec_fallocate },
|
||||
{ &vop_fdiscard_desc, spec_fdiscard },
|
||||
{ &vop_ioctl_desc, tmpfs_spec_ioctl },
|
||||
{ &vop_fcntl_desc, tmpfs_spec_fcntl },
|
||||
{ &vop_poll_desc, tmpfs_spec_poll },
|
||||
{ &vop_kqfilter_desc, tmpfs_spec_kqfilter },
|
||||
{ &vop_revoke_desc, tmpfs_spec_revoke },
|
||||
{ &vop_mmap_desc, tmpfs_spec_mmap },
|
||||
{ &vop_fsync_desc, tmpfs_spec_fsync },
|
||||
{ &vop_seek_desc, tmpfs_spec_seek },
|
||||
{ &vop_remove_desc, tmpfs_spec_remove },
|
||||
{ &vop_link_desc, tmpfs_spec_link },
|
||||
{ &vop_rename_desc, tmpfs_spec_rename },
|
||||
{ &vop_mkdir_desc, tmpfs_spec_mkdir },
|
||||
{ &vop_rmdir_desc, tmpfs_spec_rmdir },
|
||||
{ &vop_symlink_desc, tmpfs_spec_symlink },
|
||||
{ &vop_readdir_desc, tmpfs_spec_readdir },
|
||||
{ &vop_readlink_desc, tmpfs_spec_readlink },
|
||||
{ &vop_abortop_desc, tmpfs_spec_abortop },
|
||||
{ &vop_inactive_desc, tmpfs_spec_inactive },
|
||||
{ &vop_reclaim_desc, tmpfs_spec_reclaim },
|
||||
{ &vop_lock_desc, tmpfs_spec_lock },
|
||||
{ &vop_unlock_desc, tmpfs_spec_unlock },
|
||||
{ &vop_bmap_desc, tmpfs_spec_bmap },
|
||||
{ &vop_strategy_desc, tmpfs_spec_strategy },
|
||||
{ &vop_print_desc, tmpfs_spec_print },
|
||||
{ &vop_pathconf_desc, tmpfs_spec_pathconf },
|
||||
{ &vop_islocked_desc, tmpfs_spec_islocked },
|
||||
{ &vop_advlock_desc, tmpfs_spec_advlock },
|
||||
{ &vop_bwrite_desc, tmpfs_spec_bwrite },
|
||||
{ &vop_getpages_desc, tmpfs_spec_getpages },
|
||||
{ &vop_putpages_desc, tmpfs_spec_putpages },
|
||||
{ NULL, NULL }
|
||||
};
|
||||
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
/* $NetBSD: v7fs_extern.c,v 1.8 2021/06/29 22:34:08 dholland Exp $ */
|
||||
/* $NetBSD: v7fs_extern.c,v 1.9 2021/07/18 23:56:13 dholland Exp $ */
|
||||
|
||||
/*-
|
||||
* Copyright (c) 2004, 2011 The NetBSD Foundation, Inc.
|
||||
|
@ -30,7 +30,7 @@
|
|||
*/
|
||||
|
||||
#include <sys/cdefs.h>
|
||||
__KERNEL_RCSID(0, "$NetBSD: v7fs_extern.c,v 1.8 2021/06/29 22:34:08 dholland Exp $");
|
||||
__KERNEL_RCSID(0, "$NetBSD: v7fs_extern.c,v 1.9 2021/07/18 23:56:13 dholland Exp $");
|
||||
|
||||
#if defined _KERNEL_OPT
|
||||
#include "opt_v7fs.h"
|
||||
|
@ -106,11 +106,7 @@ const struct vnodeopv_entry_desc v7fs_vnodeop_entries[] = {
|
|||
int (**v7fs_specop_p)(void *);
|
||||
const struct vnodeopv_entry_desc v7fs_specop_entries[] = {
|
||||
{ &vop_default_desc, vn_default_error },
|
||||
{ &vop_parsepath_desc, genfs_parsepath }, /* parsepath */
|
||||
{ &vop_lookup_desc, spec_lookup }, /* lookup */
|
||||
{ &vop_create_desc, spec_create }, /* create xxx*/
|
||||
{ &vop_mknod_desc, spec_mknod }, /* mknod xxx*/
|
||||
{ &vop_open_desc, spec_open }, /* open */
|
||||
GENFS_SPECOP_ENTRIES,
|
||||
{ &vop_close_desc, spec_close }, /* close */
|
||||
{ &vop_access_desc, v7fs_access }, /* access */
|
||||
{ &vop_accessx_desc, genfs_accessx }, /* accessx */
|
||||
|
@ -118,49 +114,22 @@ const struct vnodeopv_entry_desc v7fs_specop_entries[] = {
|
|||
{ &vop_setattr_desc, v7fs_setattr }, /* setattr */
|
||||
{ &vop_read_desc, spec_read }, /* read */
|
||||
{ &vop_write_desc, spec_write }, /* write */
|
||||
{ &vop_fallocate_desc, spec_fallocate }, /* fallocate */
|
||||
{ &vop_fdiscard_desc, spec_fdiscard }, /* fdiscard */
|
||||
{ &vop_ioctl_desc, spec_ioctl }, /* ioctl */
|
||||
{ &vop_fcntl_desc, genfs_fcntl }, /* fcntl */
|
||||
{ &vop_poll_desc, spec_poll }, /* poll */
|
||||
{ &vop_kqfilter_desc, spec_kqfilter }, /* kqfilter */
|
||||
{ &vop_revoke_desc, spec_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_inactive_desc, v7fs_inactive }, /* inactive */
|
||||
{ &vop_reclaim_desc, v7fs_reclaim }, /* reclaim */
|
||||
{ &vop_lock_desc, genfs_lock }, /* lock */
|
||||
{ &vop_unlock_desc, genfs_unlock }, /* unlock */
|
||||
{ &vop_bmap_desc, spec_bmap }, /* bmap */
|
||||
{ &vop_strategy_desc, spec_strategy }, /* strategy */
|
||||
{ &vop_print_desc, spec_print }, /* print */
|
||||
{ &vop_islocked_desc, genfs_islocked }, /* islocked */
|
||||
{ &vop_pathconf_desc, spec_pathconf }, /* pathconf */
|
||||
{ &vop_advlock_desc, spec_advlock }, /* advlock */
|
||||
{ &vop_bwrite_desc, vn_bwrite }, /* bwrite */
|
||||
{ &vop_getpages_desc, spec_getpages }, /* getpages */
|
||||
{ &vop_putpages_desc, spec_putpages }, /* putpages */
|
||||
{ NULL, NULL }
|
||||
};
|
||||
|
||||
int (**v7fs_fifoop_p)(void *);
|
||||
const struct vnodeopv_entry_desc v7fs_fifoop_entries[] = {
|
||||
{ &vop_default_desc, vn_default_error },
|
||||
{ &vop_parsepath_desc, genfs_parsepath }, /* parsepath */
|
||||
{ &vop_lookup_desc, vn_fifo_bypass }, /* lookup */
|
||||
{ &vop_create_desc, vn_fifo_bypass }, /* create */
|
||||
{ &vop_mknod_desc, vn_fifo_bypass }, /* mknod */
|
||||
{ &vop_open_desc, vn_fifo_bypass }, /* open */
|
||||
GENFS_FIFOOP_ENTRIES,
|
||||
{ &vop_close_desc, vn_fifo_bypass }, /* close */
|
||||
{ &vop_access_desc, v7fs_access }, /* access */
|
||||
{ &vop_accessx_desc, genfs_accessx }, /* accessx */
|
||||
|
@ -168,37 +137,16 @@ const struct vnodeopv_entry_desc v7fs_fifoop_entries[] = {
|
|||
{ &vop_setattr_desc, v7fs_setattr }, /* setattr */
|
||||
{ &vop_read_desc, vn_fifo_bypass }, /* read */
|
||||
{ &vop_write_desc, vn_fifo_bypass }, /* write */
|
||||
{ &vop_fallocate_desc, vn_fifo_bypass }, /* fallocate */
|
||||
{ &vop_fdiscard_desc, vn_fifo_bypass }, /* fdiscard */
|
||||
{ &vop_ioctl_desc, vn_fifo_bypass }, /* ioctl */
|
||||
{ &vop_fcntl_desc, genfs_fcntl }, /* fcntl */
|
||||
{ &vop_poll_desc, vn_fifo_bypass }, /* poll */
|
||||
{ &vop_kqfilter_desc, vn_fifo_bypass }, /* kqfilter */
|
||||
{ &vop_revoke_desc, vn_fifo_bypass }, /* revoke */
|
||||
{ &vop_mmap_desc, vn_fifo_bypass }, /* mmap */
|
||||
{ &vop_fsync_desc, vn_fifo_bypass }, /* fsync */
|
||||
{ &vop_seek_desc, vn_fifo_bypass }, /* seek */
|
||||
{ &vop_remove_desc, vn_fifo_bypass }, /* remove */
|
||||
{ &vop_link_desc, vn_fifo_bypass }, /* link */
|
||||
{ &vop_rename_desc, vn_fifo_bypass }, /* rename */
|
||||
{ &vop_mkdir_desc, vn_fifo_bypass }, /* mkdir */
|
||||
{ &vop_rmdir_desc, vn_fifo_bypass }, /* rmdir */
|
||||
{ &vop_symlink_desc, vn_fifo_bypass }, /* symlink */
|
||||
{ &vop_readdir_desc, vn_fifo_bypass }, /* readdir */
|
||||
{ &vop_readlink_desc, vn_fifo_bypass }, /* readlink */
|
||||
{ &vop_abortop_desc, vn_fifo_bypass }, /* abortop */
|
||||
{ &vop_inactive_desc, v7fs_inactive }, /* inactive */
|
||||
{ &vop_reclaim_desc, v7fs_reclaim }, /* reclaim */
|
||||
{ &vop_lock_desc, vn_fifo_bypass }, /* lock */
|
||||
{ &vop_unlock_desc, vn_fifo_bypass }, /* unlock */
|
||||
{ &vop_bmap_desc, vn_fifo_bypass }, /* bmap */
|
||||
{ &vop_strategy_desc, vn_fifo_bypass }, /* strategy */
|
||||
{ &vop_print_desc, vn_fifo_bypass }, /* print */
|
||||
{ &vop_islocked_desc, vn_fifo_bypass }, /* islocked */
|
||||
{ &vop_pathconf_desc, vn_fifo_bypass }, /* pathconf */
|
||||
{ &vop_advlock_desc, vn_fifo_bypass }, /* advlock */
|
||||
{ &vop_bwrite_desc, vn_bwrite }, /* bwrite */
|
||||
{ &vop_putpages_desc, vn_fifo_bypass }, /* putpages */
|
||||
{ NULL, NULL }
|
||||
};
|
||||
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
/* $NetBSD: fifo.h,v 1.26 2010/03/29 13:11:33 pooka Exp $ */
|
||||
/* $NetBSD: fifo.h,v 1.27 2021/07/18 23:56:13 dholland Exp $ */
|
||||
|
||||
/*
|
||||
* Copyright (c) 1991, 1993
|
||||
|
@ -32,3 +32,88 @@
|
|||
*/
|
||||
|
||||
extern int (**fifo_vnodeop_p)(void *);
|
||||
|
||||
/*
|
||||
* This macro provides an initializer list for the fs-independent part
|
||||
* of a filesystem's fifo vnode ops descriptor table. We still need
|
||||
* such a table in every filesystem, but we can at least avoid the
|
||||
* cutpaste.
|
||||
*
|
||||
* This contains these ops:
|
||||
* parsepath lookup
|
||||
* create whiteout mknod open fallocate fdiscard ioctl poll kqfilter
|
||||
* revoke mmap seek remove link rename mkdir rmdir symlink readdir
|
||||
* readlink abortop bmap pathconf advlock getpages putpages
|
||||
*
|
||||
* The filesystem should provide these ops that need to be its own:
|
||||
* access and accessx
|
||||
* getattr
|
||||
* setattr
|
||||
* fcntl
|
||||
* inactive
|
||||
* reclaim
|
||||
* lock
|
||||
* unlock
|
||||
* strategy
|
||||
* print (should probably also call fifo_print)
|
||||
* islocked
|
||||
* bwrite (normally vn_bwrite)
|
||||
* openextattr
|
||||
* closeextattr
|
||||
* getextattr
|
||||
* setextattr
|
||||
* listextattr
|
||||
* deleteextattr
|
||||
* getacl
|
||||
* setacl
|
||||
* aclcheck
|
||||
*
|
||||
* The filesystem should also provide these ops that some filesystems
|
||||
* do their own things with:
|
||||
* close
|
||||
* read
|
||||
* write
|
||||
* fsync
|
||||
* In most cases "their own things" means adjust timestamps and call
|
||||
* fifo_foo (currently via vn_fifo_bypass). For fsync it varies.
|
||||
*
|
||||
* Note that because the op descriptor tables are unordered it does not
|
||||
* matter where in the table this macro goes (except I think default
|
||||
* still needs to be first...)
|
||||
*
|
||||
* XXX currently all the ops are vn_fifo_bypass, which does an
|
||||
* indirect call via the fifofs ops table (externed above), which
|
||||
* someone decided was preferable to exposing the function
|
||||
* definitions. This includes (for now at least) the ones that are
|
||||
* sent to genfs by that table. This should probably be changed, but
|
||||
* not just yet.
|
||||
*/
|
||||
#define GENFS_FIFOOP_ENTRIES \
|
||||
{ &vop_parsepath_desc, genfs_badop }, /* parsepath */ \
|
||||
{ &vop_lookup_desc, vn_fifo_bypass }, /* lookup */ \
|
||||
{ &vop_create_desc, vn_fifo_bypass }, /* create */ \
|
||||
{ &vop_whiteout_desc, vn_fifo_bypass }, /* whiteout */ \
|
||||
{ &vop_mknod_desc, vn_fifo_bypass }, /* mknod */ \
|
||||
{ &vop_open_desc, vn_fifo_bypass }, /* open */ \
|
||||
{ &vop_fallocate_desc, vn_fifo_bypass }, /* fallocate */ \
|
||||
{ &vop_fdiscard_desc, vn_fifo_bypass }, /* fdiscard */ \
|
||||
{ &vop_ioctl_desc, vn_fifo_bypass }, /* ioctl */ \
|
||||
{ &vop_poll_desc, vn_fifo_bypass }, /* poll */ \
|
||||
{ &vop_kqfilter_desc, vn_fifo_bypass }, /* kqfilter */ \
|
||||
{ &vop_revoke_desc, vn_fifo_bypass }, /* revoke */ \
|
||||
{ &vop_mmap_desc, vn_fifo_bypass }, /* mmap */ \
|
||||
{ &vop_seek_desc, vn_fifo_bypass }, /* seek */ \
|
||||
{ &vop_remove_desc, vn_fifo_bypass }, /* remove */ \
|
||||
{ &vop_link_desc, vn_fifo_bypass }, /* link */ \
|
||||
{ &vop_rename_desc, vn_fifo_bypass }, /* rename */ \
|
||||
{ &vop_mkdir_desc, vn_fifo_bypass }, /* mkdir */ \
|
||||
{ &vop_rmdir_desc, vn_fifo_bypass }, /* rmdir */ \
|
||||
{ &vop_symlink_desc, vn_fifo_bypass }, /* symlink */ \
|
||||
{ &vop_readdir_desc, vn_fifo_bypass }, /* readdir */ \
|
||||
{ &vop_readlink_desc, vn_fifo_bypass }, /* readlink */ \
|
||||
{ &vop_abortop_desc, vn_fifo_bypass }, /* abortop */ \
|
||||
{ &vop_bmap_desc, vn_fifo_bypass }, /* bmap */ \
|
||||
{ &vop_pathconf_desc, vn_fifo_bypass }, /* pathconf */ \
|
||||
{ &vop_advlock_desc, vn_fifo_bypass }, /* advlock */ \
|
||||
{ &vop_getpages_desc, genfs_badop }, /* getpages */ \
|
||||
{ &vop_putpages_desc, vn_fifo_bypass } /* putpages */
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
/* $NetBSD: kernfs_vnops.c,v 1.170 2021/07/06 03:23:03 dholland Exp $ */
|
||||
/* $NetBSD: kernfs_vnops.c,v 1.171 2021/07/18 23:56:13 dholland Exp $ */
|
||||
|
||||
/*
|
||||
* Copyright (c) 1992, 1993
|
||||
|
@ -39,7 +39,7 @@
|
|||
*/
|
||||
|
||||
#include <sys/cdefs.h>
|
||||
__KERNEL_RCSID(0, "$NetBSD: kernfs_vnops.c,v 1.170 2021/07/06 03:23:03 dholland Exp $");
|
||||
__KERNEL_RCSID(0, "$NetBSD: kernfs_vnops.c,v 1.171 2021/07/18 23:56:13 dholland Exp $");
|
||||
|
||||
#include <sys/param.h>
|
||||
#include <sys/systm.h>
|
||||
|
@ -233,11 +233,7 @@ const struct vnodeopv_desc kernfs_vnodeop_opv_desc =
|
|||
int (**kernfs_specop_p)(void *);
|
||||
const struct vnodeopv_entry_desc kernfs_specop_entries[] = {
|
||||
{ &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_open_desc, spec_open }, /* open */
|
||||
GENFS_SPECOP_ENTRIES,
|
||||
{ &vop_close_desc, spec_close }, /* close */
|
||||
{ &vop_access_desc, kernfs_access }, /* access */
|
||||
{ &vop_accessx_desc, genfs_accessx }, /* accessx */
|
||||
|
@ -245,37 +241,15 @@ const struct vnodeopv_entry_desc kernfs_specop_entries[] = {
|
|||
{ &vop_setattr_desc, kernfs_setattr }, /* setattr */
|
||||
{ &vop_read_desc, spec_read }, /* read */
|
||||
{ &vop_write_desc, spec_write }, /* write */
|
||||
{ &vop_fallocate_desc, spec_fallocate }, /* fallocate */
|
||||
{ &vop_fdiscard_desc, spec_fdiscard }, /* fdiscard */
|
||||
{ &vop_fcntl_desc, spec_fcntl }, /* fcntl */
|
||||
{ &vop_ioctl_desc, spec_ioctl }, /* ioctl */
|
||||
{ &vop_poll_desc, spec_poll }, /* poll */
|
||||
{ &vop_kqfilter_desc, genfs_kqfilter }, /* kqfilter */
|
||||
{ &vop_revoke_desc, spec_revoke }, /* revoke */
|
||||
{ &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_inactive_desc, kernfs_inactive }, /* inactive */
|
||||
{ &vop_reclaim_desc, kernfs_reclaim }, /* reclaim */
|
||||
{ &vop_lock_desc, kernfs_lock }, /* lock */
|
||||
{ &vop_unlock_desc, kernfs_unlock }, /* unlock */
|
||||
{ &vop_bmap_desc, spec_bmap }, /* bmap */
|
||||
{ &vop_strategy_desc, spec_strategy }, /* strategy */
|
||||
{ &vop_print_desc, kernfs_print }, /* print */
|
||||
{ &vop_islocked_desc, kernfs_islocked }, /* 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 */
|
||||
{ NULL, NULL }
|
||||
};
|
||||
const struct vnodeopv_desc kernfs_specop_opv_desc =
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
/* $NetBSD: specdev.h,v 1.44 2015/06/23 10:42:35 hannken Exp $ */
|
||||
/* $NetBSD: specdev.h,v 1.45 2021/07/18 23:56:14 dholland Exp $ */
|
||||
|
||||
/*-
|
||||
* Copyright (c) 2008 The NetBSD Foundation, Inc.
|
||||
|
@ -152,6 +152,85 @@ int spec_advlock(void *);
|
|||
#define spec_getpages genfs_getpages
|
||||
#define spec_putpages genfs_putpages
|
||||
|
||||
/*
|
||||
* This macro provides an initializer list for the fs-independent part
|
||||
* of a filesystem's special file vnode ops descriptor table. We still
|
||||
* need such a table in every filesystem, but we can at least avoid
|
||||
* the cutpaste.
|
||||
*
|
||||
* This contains these ops:
|
||||
* parsepath lookup
|
||||
* create whiteout mknod open fallocate fdiscard ioctl poll kqfilter
|
||||
* revoke mmap seek remove link rename mkdir rmdir symlink readdir
|
||||
* readlink abortop bmap strategy pathconf advlock getpages putpages
|
||||
*
|
||||
* The filesystem should provide these ops that need to be its own:
|
||||
* access and accessx
|
||||
* getattr
|
||||
* setattr
|
||||
* fcntl
|
||||
* inactive
|
||||
* reclaim
|
||||
* lock
|
||||
* unlock
|
||||
* print (should probably also call spec_print)
|
||||
* islocked
|
||||
* bwrite (normally vn_bwrite)
|
||||
* openextattr
|
||||
* closeextattr
|
||||
* getextattr
|
||||
* setextattr
|
||||
* listextattr
|
||||
* deleteextattr
|
||||
* getacl
|
||||
* setacl
|
||||
* aclcheck
|
||||
*
|
||||
* The filesystem should also provide these ops that some filesystems
|
||||
* do their own things with:
|
||||
* close
|
||||
* read
|
||||
* write
|
||||
* fsync
|
||||
* In most cases "their own things" means adjust timestamps and call
|
||||
* spec_foo. For fsync it varies, but should always also call spec_fsync.
|
||||
*
|
||||
* Note that because the op descriptor tables are unordered it does not
|
||||
* matter where in the table this macro goes (except I think default
|
||||
* still needs to be first...)
|
||||
*/
|
||||
#define GENFS_SPECOP_ENTRIES \
|
||||
{ &vop_parsepath_desc, genfs_badop }, /* parsepath */ \
|
||||
{ &vop_lookup_desc, spec_lookup }, /* lookup */ \
|
||||
{ &vop_create_desc, genfs_badop }, /* create */ \
|
||||
{ &vop_whiteout_desc, genfs_badop }, /* whiteout */ \
|
||||
{ &vop_mknod_desc, genfs_badop }, /* mknod */ \
|
||||
{ &vop_open_desc, spec_open }, /* open */ \
|
||||
{ &vop_fallocate_desc, genfs_eopnotsupp }, /* fallocate */ \
|
||||
{ &vop_fdiscard_desc, spec_fdiscard }, /* fdiscard */ \
|
||||
{ &vop_ioctl_desc, spec_ioctl }, /* ioctl */ \
|
||||
{ &vop_poll_desc, spec_poll }, /* poll */ \
|
||||
{ &vop_kqfilter_desc, spec_kqfilter }, /* kqfilter */ \
|
||||
{ &vop_revoke_desc, genfs_revoke }, /* revoke */ \
|
||||
{ &vop_mmap_desc, spec_mmap }, /* mmap */ \
|
||||
{ &vop_seek_desc, spec_seek }, /* 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_bmap_desc, spec_bmap }, /* bmap */ \
|
||||
{ &vop_strategy_desc, spec_strategy }, /* strategy */ \
|
||||
{ &vop_pathconf_desc, spec_pathconf }, /* pathconf */ \
|
||||
{ &vop_advlock_desc, spec_advlock }, /* advlock */ \
|
||||
{ &vop_getpages_desc, genfs_getpages }, /* getpages */ \
|
||||
{ &vop_putpages_desc, genfs_putpages } /* putpages */
|
||||
|
||||
|
||||
bool iskmemvp(struct vnode *);
|
||||
void spec_init(void);
|
||||
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
/* $NetBSD: nfs_vnops.c,v 1.318 2021/06/29 22:34:09 dholland Exp $ */
|
||||
/* $NetBSD: nfs_vnops.c,v 1.319 2021/07/18 23:56:14 dholland Exp $ */
|
||||
|
||||
/*
|
||||
* Copyright (c) 1989, 1993
|
||||
|
@ -39,7 +39,7 @@
|
|||
*/
|
||||
|
||||
#include <sys/cdefs.h>
|
||||
__KERNEL_RCSID(0, "$NetBSD: nfs_vnops.c,v 1.318 2021/06/29 22:34:09 dholland Exp $");
|
||||
__KERNEL_RCSID(0, "$NetBSD: nfs_vnops.c,v 1.319 2021/07/18 23:56:14 dholland Exp $");
|
||||
|
||||
#ifdef _KERNEL_OPT
|
||||
#include "opt_nfs.h"
|
||||
|
@ -155,11 +155,7 @@ const struct vnodeopv_desc nfsv2_vnodeop_opv_desc =
|
|||
int (**spec_nfsv2nodeop_p)(void *);
|
||||
const struct vnodeopv_entry_desc spec_nfsv2nodeop_entries[] = {
|
||||
{ &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_open_desc, spec_open }, /* open */
|
||||
GENFS_SPECOP_ENTRIES,
|
||||
{ &vop_close_desc, nfsspec_close }, /* close */
|
||||
{ &vop_access_desc, nfsspec_access }, /* access */
|
||||
{ &vop_accessx_desc, genfs_accessx }, /* accessx */
|
||||
|
@ -167,38 +163,15 @@ const struct vnodeopv_entry_desc spec_nfsv2nodeop_entries[] = {
|
|||
{ &vop_setattr_desc, nfs_setattr }, /* setattr */
|
||||
{ &vop_read_desc, nfsspec_read }, /* read */
|
||||
{ &vop_write_desc, nfsspec_write }, /* write */
|
||||
{ &vop_fallocate_desc, spec_fallocate }, /* fallocate */
|
||||
{ &vop_fdiscard_desc, spec_fdiscard }, /* fdiscard */
|
||||
{ &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_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_inactive_desc, nfs_inactive }, /* inactive */
|
||||
{ &vop_reclaim_desc, nfs_reclaim }, /* reclaim */
|
||||
{ &vop_lock_desc, nfs_lock }, /* lock */
|
||||
{ &vop_unlock_desc, nfs_unlock }, /* unlock */
|
||||
{ &vop_bmap_desc, spec_bmap }, /* bmap */
|
||||
{ &vop_strategy_desc, spec_strategy }, /* strategy */
|
||||
{ &vop_print_desc, nfs_print }, /* print */
|
||||
{ &vop_islocked_desc, nfs_islocked }, /* 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 */
|
||||
{ NULL, NULL }
|
||||
};
|
||||
const struct vnodeopv_desc spec_nfsv2nodeop_opv_desc =
|
||||
|
@ -207,11 +180,7 @@ const struct vnodeopv_desc spec_nfsv2nodeop_opv_desc =
|
|||
int (**fifo_nfsv2nodeop_p)(void *);
|
||||
const struct vnodeopv_entry_desc fifo_nfsv2nodeop_entries[] = {
|
||||
{ &vop_default_desc, vn_default_error },
|
||||
{ &vop_parsepath_desc, genfs_parsepath }, /* parsepath */
|
||||
{ &vop_lookup_desc, vn_fifo_bypass }, /* lookup */
|
||||
{ &vop_create_desc, vn_fifo_bypass }, /* create */
|
||||
{ &vop_mknod_desc, vn_fifo_bypass }, /* mknod */
|
||||
{ &vop_open_desc, vn_fifo_bypass }, /* open */
|
||||
GENFS_FIFOOP_ENTRIES,
|
||||
{ &vop_close_desc, nfsfifo_close }, /* close */
|
||||
{ &vop_access_desc, nfsspec_access }, /* access */
|
||||
{ &vop_accessx_desc, genfs_accessx }, /* accessx */
|
||||
|
@ -219,37 +188,16 @@ const struct vnodeopv_entry_desc fifo_nfsv2nodeop_entries[] = {
|
|||
{ &vop_setattr_desc, nfs_setattr }, /* setattr */
|
||||
{ &vop_read_desc, nfsfifo_read }, /* read */
|
||||
{ &vop_write_desc, nfsfifo_write }, /* write */
|
||||
{ &vop_fallocate_desc, vn_fifo_bypass }, /* fallocate */
|
||||
{ &vop_fdiscard_desc, vn_fifo_bypass }, /* fdiscard */
|
||||
{ &vop_fcntl_desc, genfs_fcntl }, /* fcntl */
|
||||
{ &vop_ioctl_desc, vn_fifo_bypass }, /* ioctl */
|
||||
{ &vop_poll_desc, vn_fifo_bypass }, /* poll */
|
||||
{ &vop_kqfilter_desc, vn_fifo_bypass }, /* kqfilter */
|
||||
{ &vop_revoke_desc, vn_fifo_bypass }, /* revoke */
|
||||
{ &vop_mmap_desc, vn_fifo_bypass }, /* mmap */
|
||||
{ &vop_fsync_desc, nfs_fsync }, /* fsync */
|
||||
{ &vop_seek_desc, vn_fifo_bypass }, /* seek */
|
||||
{ &vop_remove_desc, vn_fifo_bypass }, /* remove */
|
||||
{ &vop_link_desc, vn_fifo_bypass }, /* link */
|
||||
{ &vop_rename_desc, vn_fifo_bypass }, /* rename */
|
||||
{ &vop_mkdir_desc, vn_fifo_bypass }, /* mkdir */
|
||||
{ &vop_rmdir_desc, vn_fifo_bypass }, /* rmdir */
|
||||
{ &vop_symlink_desc, vn_fifo_bypass }, /* symlink */
|
||||
{ &vop_readdir_desc, vn_fifo_bypass }, /* readdir */
|
||||
{ &vop_readlink_desc, vn_fifo_bypass }, /* readlink */
|
||||
{ &vop_abortop_desc, vn_fifo_bypass }, /* abortop */
|
||||
{ &vop_inactive_desc, nfs_inactive }, /* inactive */
|
||||
{ &vop_reclaim_desc, nfs_reclaim }, /* reclaim */
|
||||
{ &vop_lock_desc, nfs_lock }, /* lock */
|
||||
{ &vop_unlock_desc, nfs_unlock }, /* unlock */
|
||||
{ &vop_bmap_desc, vn_fifo_bypass }, /* bmap */
|
||||
{ &vop_strategy_desc, genfs_badop }, /* strategy */
|
||||
{ &vop_strategy_desc, vn_fifo_bypass }, /* strategy */
|
||||
{ &vop_print_desc, nfs_print }, /* print */
|
||||
{ &vop_islocked_desc, nfs_islocked }, /* islocked */
|
||||
{ &vop_pathconf_desc, vn_fifo_bypass }, /* pathconf */
|
||||
{ &vop_advlock_desc, vn_fifo_bypass }, /* advlock */
|
||||
{ &vop_bwrite_desc, genfs_badop }, /* bwrite */
|
||||
{ &vop_putpages_desc, vn_fifo_bypass }, /* putpages */
|
||||
{ NULL, NULL }
|
||||
};
|
||||
const struct vnodeopv_desc fifo_nfsv2nodeop_opv_desc =
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
/* $NetBSD: rumpfs.c,v 1.164 2021/06/29 22:38:10 dholland Exp $ */
|
||||
/* $NetBSD: rumpfs.c,v 1.165 2021/07/18 23:56:14 dholland Exp $ */
|
||||
|
||||
/*
|
||||
* Copyright (c) 2009, 2010, 2011 Antti Kantee. All Rights Reserved.
|
||||
|
@ -26,7 +26,7 @@
|
|||
*/
|
||||
|
||||
#include <sys/cdefs.h>
|
||||
__KERNEL_RCSID(0, "$NetBSD: rumpfs.c,v 1.164 2021/06/29 22:38:10 dholland Exp $");
|
||||
__KERNEL_RCSID(0, "$NetBSD: rumpfs.c,v 1.165 2021/07/18 23:56:14 dholland Exp $");
|
||||
|
||||
#include <sys/param.h>
|
||||
#include <sys/atomic.h>
|
||||
|
@ -1728,6 +1728,7 @@ rump_vop_spec(void *v)
|
|||
|
||||
switch (ap->a_desc->vdesc_offset) {
|
||||
case VOP_ACCESS_DESCOFFSET:
|
||||
case VOP_ACCESSX_DESCOFFSET:
|
||||
case VOP_GETATTR_DESCOFFSET:
|
||||
case VOP_SETATTR_DESCOFFSET:
|
||||
case VOP_LOCK_DESCOFFSET:
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
/* $NetBSD: chfs_vnops.c,v 1.44 2021/07/05 21:43:56 dholland Exp $ */
|
||||
/* $NetBSD: chfs_vnops.c,v 1.45 2021/07/18 23:56:14 dholland Exp $ */
|
||||
|
||||
/*-
|
||||
* Copyright (c) 2010 Department of Software Engineering,
|
||||
|
@ -1658,11 +1658,7 @@ int
|
|||
const struct vnodeopv_entry_desc chfs_specop_entries[] =
|
||||
{
|
||||
{ &vop_default_desc, vn_default_error },
|
||||
{ &vop_parsepath_desc, genfs_parsepath },
|
||||
{ &vop_lookup_desc, spec_lookup },
|
||||
{ &vop_create_desc, spec_create },
|
||||
{ &vop_mknod_desc, spec_mknod },
|
||||
{ &vop_open_desc, spec_open },
|
||||
GENFS_SPECOP_ENTRIES,
|
||||
{ &vop_close_desc, ufsspec_close },
|
||||
{ &vop_access_desc, chfs_access },
|
||||
{ &vop_accessx_desc, genfs_accessx },
|
||||
|
@ -1670,38 +1666,15 @@ const struct vnodeopv_entry_desc chfs_specop_entries[] =
|
|||
{ &vop_setattr_desc, chfs_setattr },
|
||||
{ &vop_read_desc, chfs_read },
|
||||
{ &vop_write_desc, chfs_write },
|
||||
{ &vop_fallocate_desc, spec_fallocate },
|
||||
{ &vop_fdiscard_desc, spec_fdiscard },
|
||||
{ &vop_ioctl_desc, spec_ioctl },
|
||||
{ &vop_fcntl_desc, genfs_fcntl },
|
||||
{ &vop_poll_desc, spec_poll },
|
||||
{ &vop_kqfilter_desc, spec_kqfilter },
|
||||
{ &vop_revoke_desc, spec_revoke },
|
||||
{ &vop_mmap_desc, spec_mmap },
|
||||
{ &vop_fsync_desc, spec_fsync },
|
||||
{ &vop_seek_desc, spec_seek },
|
||||
{ &vop_remove_desc, spec_remove },
|
||||
{ &vop_link_desc, spec_link },
|
||||
{ &vop_rename_desc, spec_rename },
|
||||
{ &vop_mkdir_desc, spec_mkdir },
|
||||
{ &vop_rmdir_desc, spec_rmdir },
|
||||
{ &vop_symlink_desc, spec_symlink },
|
||||
{ &vop_readdir_desc, spec_readdir },
|
||||
{ &vop_readlink_desc, spec_readlink },
|
||||
{ &vop_abortop_desc, spec_abortop },
|
||||
{ &vop_inactive_desc, chfs_inactive },
|
||||
{ &vop_reclaim_desc, chfs_reclaim },
|
||||
{ &vop_lock_desc, genfs_lock },
|
||||
{ &vop_unlock_desc, genfs_unlock },
|
||||
{ &vop_bmap_desc, spec_bmap },
|
||||
{ &vop_strategy_desc, spec_strategy },
|
||||
{ &vop_print_desc, ufs_print },
|
||||
{ &vop_pathconf_desc, spec_pathconf },
|
||||
{ &vop_islocked_desc, genfs_islocked },
|
||||
{ &vop_advlock_desc, spec_advlock },
|
||||
{ &vop_bwrite_desc, vn_bwrite },
|
||||
{ &vop_getpages_desc, spec_getpages },
|
||||
{ &vop_putpages_desc, spec_putpages },
|
||||
{ NULL, NULL } };
|
||||
|
||||
const struct vnodeopv_desc chfs_specop_opv_desc =
|
||||
|
@ -1716,11 +1689,7 @@ int
|
|||
const struct vnodeopv_entry_desc chfs_fifoop_entries[] =
|
||||
{
|
||||
{ &vop_default_desc, vn_default_error },
|
||||
{ &vop_parsepath_desc, genfs_parsepath },
|
||||
{ &vop_lookup_desc, vn_fifo_bypass },
|
||||
{ &vop_create_desc, vn_fifo_bypass },
|
||||
{ &vop_mknod_desc, vn_fifo_bypass },
|
||||
{ &vop_open_desc, vn_fifo_bypass },
|
||||
GENFS_FIFOOP_ENTRIES,
|
||||
{ &vop_close_desc, ufsfifo_close },
|
||||
{ &vop_access_desc, chfs_access },
|
||||
{ &vop_accessx_desc, genfs_accessx },
|
||||
|
@ -1728,38 +1697,16 @@ const struct vnodeopv_entry_desc chfs_fifoop_entries[] =
|
|||
{ &vop_setattr_desc, chfs_setattr },
|
||||
{ &vop_read_desc, ufsfifo_read },
|
||||
{ &vop_write_desc, ufsfifo_write },
|
||||
{ &vop_fallocate_desc, vn_fifo_bypass },
|
||||
{ &vop_fdiscard_desc, vn_fifo_bypass },
|
||||
{ &vop_ioctl_desc, vn_fifo_bypass },
|
||||
{ &vop_fcntl_desc, genfs_fcntl },
|
||||
{ &vop_poll_desc, vn_fifo_bypass },
|
||||
{ &vop_kqfilter_desc, vn_fifo_bypass },
|
||||
{ &vop_revoke_desc, vn_fifo_bypass },
|
||||
{ &vop_mmap_desc, vn_fifo_bypass },
|
||||
{ &vop_fsync_desc, vn_fifo_bypass },
|
||||
{ &vop_seek_desc, vn_fifo_bypass },
|
||||
{ &vop_remove_desc, vn_fifo_bypass },
|
||||
{ &vop_link_desc, vn_fifo_bypass },
|
||||
{ &vop_rename_desc, vn_fifo_bypass },
|
||||
{ &vop_mkdir_desc, vn_fifo_bypass },
|
||||
{ &vop_rmdir_desc, vn_fifo_bypass },
|
||||
{ &vop_symlink_desc, vn_fifo_bypass },
|
||||
{ &vop_readdir_desc, vn_fifo_bypass },
|
||||
{ &vop_readlink_desc, vn_fifo_bypass },
|
||||
{ &vop_abortop_desc, vn_fifo_bypass },
|
||||
{ &vop_inactive_desc, chfs_inactive },
|
||||
{ &vop_reclaim_desc, chfs_reclaim },
|
||||
{ &vop_lock_desc, genfs_lock },
|
||||
{ &vop_unlock_desc, genfs_unlock },
|
||||
{ &vop_bmap_desc, vn_fifo_bypass },
|
||||
{ &vop_strategy_desc, vn_fifo_bypass },
|
||||
{ &vop_print_desc, ufs_print },
|
||||
{ &vop_pathconf_desc, vn_fifo_bypass },
|
||||
{ &vop_islocked_desc, genfs_islocked },
|
||||
{ &vop_advlock_desc, vn_fifo_bypass },
|
||||
{ &vop_bwrite_desc, genfs_nullop },
|
||||
{ &vop_getpages_desc, genfs_badop },
|
||||
{ &vop_putpages_desc, vn_fifo_bypass },
|
||||
{ NULL, NULL } };
|
||||
|
||||
const struct vnodeopv_desc chfs_fifoop_opv_desc =
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
/* $NetBSD: ext2fs_vnops.c,v 1.133 2021/06/29 22:34:09 dholland Exp $ */
|
||||
/* $NetBSD: ext2fs_vnops.c,v 1.134 2021/07/18 23:56:14 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.133 2021/06/29 22:34:09 dholland Exp $");
|
||||
__KERNEL_RCSID(0, "$NetBSD: ext2fs_vnops.c,v 1.134 2021/07/18 23:56:14 dholland Exp $");
|
||||
|
||||
#include <sys/param.h>
|
||||
#include <sys/systm.h>
|
||||
|
@ -1150,11 +1150,7 @@ const struct vnodeopv_desc ext2fs_vnodeop_opv_desc =
|
|||
int (**ext2fs_specop_p)(void *);
|
||||
const struct vnodeopv_entry_desc ext2fs_specop_entries[] = {
|
||||
{ &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_open_desc, spec_open }, /* open */
|
||||
GENFS_SPECOP_ENTRIES,
|
||||
{ &vop_close_desc, ufsspec_close }, /* close */
|
||||
{ &vop_access_desc, ext2fs_access }, /* access */
|
||||
{ &vop_accessx_desc, genfs_accessx }, /* accessx */
|
||||
|
@ -1162,38 +1158,15 @@ const struct vnodeopv_entry_desc ext2fs_specop_entries[] = {
|
|||
{ &vop_setattr_desc, ext2fs_setattr }, /* setattr */
|
||||
{ &vop_read_desc, ufsspec_read }, /* read */
|
||||
{ &vop_write_desc, ufsspec_write }, /* write */
|
||||
{ &vop_fallocate_desc, spec_fallocate }, /* fallocate */
|
||||
{ &vop_fdiscard_desc, spec_fdiscard }, /* fdiscard */
|
||||
{ &vop_ioctl_desc, spec_ioctl }, /* ioctl */
|
||||
{ &vop_fcntl_desc, ufs_fcntl }, /* fcntl */
|
||||
{ &vop_poll_desc, spec_poll }, /* poll */
|
||||
{ &vop_kqfilter_desc, spec_kqfilter }, /* kqfilter */
|
||||
{ &vop_revoke_desc, spec_revoke }, /* revoke */
|
||||
{ &vop_mmap_desc, spec_mmap }, /* mmap */
|
||||
{ &vop_fsync_desc, ext2fs_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_inactive_desc, ext2fs_inactive }, /* inactive */
|
||||
{ &vop_reclaim_desc, ext2fs_reclaim }, /* reclaim */
|
||||
{ &vop_lock_desc, ufs_lock }, /* lock */
|
||||
{ &vop_unlock_desc, ufs_unlock }, /* unlock */
|
||||
{ &vop_bmap_desc, spec_bmap }, /* bmap */
|
||||
{ &vop_strategy_desc, spec_strategy }, /* strategy */
|
||||
{ &vop_print_desc, ufs_print }, /* print */
|
||||
{ &vop_islocked_desc, ufs_islocked }, /* islocked */
|
||||
{ &vop_pathconf_desc, spec_pathconf }, /* pathconf */
|
||||
{ &vop_advlock_desc, spec_advlock }, /* advlock */
|
||||
{ &vop_bwrite_desc, vn_bwrite }, /* bwrite */
|
||||
{ &vop_getpages_desc, spec_getpages }, /* getpages */
|
||||
{ &vop_putpages_desc, spec_putpages }, /* putpages */
|
||||
{ &vop_getextattr_desc, ext2fs_getextattr }, /* getextattr */
|
||||
{ &vop_setextattr_desc, ext2fs_setextattr }, /* setextattr */
|
||||
{ &vop_listextattr_desc, ext2fs_listextattr }, /* listextattr */
|
||||
|
@ -1206,11 +1179,7 @@ const struct vnodeopv_desc ext2fs_specop_opv_desc =
|
|||
int (**ext2fs_fifoop_p)(void *);
|
||||
const struct vnodeopv_entry_desc ext2fs_fifoop_entries[] = {
|
||||
{ &vop_default_desc, vn_default_error },
|
||||
{ &vop_parsepath_desc, genfs_parsepath }, /* parsepath */
|
||||
{ &vop_lookup_desc, vn_fifo_bypass }, /* lookup */
|
||||
{ &vop_create_desc, vn_fifo_bypass }, /* create */
|
||||
{ &vop_mknod_desc, vn_fifo_bypass }, /* mknod */
|
||||
{ &vop_open_desc, vn_fifo_bypass }, /* open */
|
||||
GENFS_FIFOOP_ENTRIES,
|
||||
{ &vop_close_desc, ufsfifo_close }, /* close */
|
||||
{ &vop_access_desc, ext2fs_access }, /* access */
|
||||
{ &vop_accessx_desc, genfs_accessx }, /* accessx */
|
||||
|
@ -1218,37 +1187,16 @@ const struct vnodeopv_entry_desc ext2fs_fifoop_entries[] = {
|
|||
{ &vop_setattr_desc, ext2fs_setattr }, /* setattr */
|
||||
{ &vop_read_desc, ufsfifo_read }, /* read */
|
||||
{ &vop_write_desc, ufsfifo_write }, /* write */
|
||||
{ &vop_fallocate_desc, vn_fifo_bypass }, /* fallocate */
|
||||
{ &vop_fdiscard_desc, vn_fifo_bypass }, /* fdiscard */
|
||||
{ &vop_ioctl_desc, vn_fifo_bypass }, /* ioctl */
|
||||
{ &vop_fcntl_desc, ufs_fcntl }, /* fcntl */
|
||||
{ &vop_poll_desc, vn_fifo_bypass }, /* poll */
|
||||
{ &vop_kqfilter_desc, vn_fifo_bypass }, /* kqfilter */
|
||||
{ &vop_revoke_desc, vn_fifo_bypass }, /* revoke */
|
||||
{ &vop_mmap_desc, vn_fifo_bypass }, /* mmap */
|
||||
{ &vop_fsync_desc, ext2fs_fsync }, /* fsync */
|
||||
{ &vop_seek_desc, vn_fifo_bypass }, /* seek */
|
||||
{ &vop_remove_desc, vn_fifo_bypass }, /* remove */
|
||||
{ &vop_link_desc, vn_fifo_bypass }, /* link */
|
||||
{ &vop_rename_desc, vn_fifo_bypass }, /* rename */
|
||||
{ &vop_mkdir_desc, vn_fifo_bypass }, /* mkdir */
|
||||
{ &vop_rmdir_desc, vn_fifo_bypass }, /* rmdir */
|
||||
{ &vop_symlink_desc, vn_fifo_bypass }, /* symlink */
|
||||
{ &vop_readdir_desc, vn_fifo_bypass }, /* readdir */
|
||||
{ &vop_readlink_desc, vn_fifo_bypass }, /* readlink */
|
||||
{ &vop_abortop_desc, vn_fifo_bypass }, /* 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_bmap_desc, vn_fifo_bypass }, /* bmap */
|
||||
{ &vop_strategy_desc, vn_fifo_bypass }, /* strategy */
|
||||
{ &vop_print_desc, ufs_print }, /* print */
|
||||
{ &vop_islocked_desc, ufs_islocked }, /* islocked */
|
||||
{ &vop_pathconf_desc, vn_fifo_bypass }, /* pathconf */
|
||||
{ &vop_advlock_desc, vn_fifo_bypass }, /* advlock */
|
||||
{ &vop_bwrite_desc, vn_bwrite }, /* bwrite */
|
||||
{ &vop_putpages_desc, vn_fifo_bypass }, /* putpages */
|
||||
{ &vop_getextattr_desc, ext2fs_getextattr }, /* getextattr */
|
||||
{ &vop_setextattr_desc, ext2fs_setextattr }, /* setextattr */
|
||||
{ &vop_listextattr_desc, ext2fs_listextattr }, /* listextattr */
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
/* $NetBSD: ffs_vnops.c,v 1.135 2021/07/14 07:24:14 christos Exp $ */
|
||||
/* $NetBSD: ffs_vnops.c,v 1.136 2021/07/18 23:56:14 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.135 2021/07/14 07:24:14 christos Exp $");
|
||||
__KERNEL_RCSID(0, "$NetBSD: ffs_vnops.c,v 1.136 2021/07/18 23:56:14 dholland Exp $");
|
||||
|
||||
#if defined(_KERNEL_OPT)
|
||||
#include "opt_ffs.h"
|
||||
|
@ -164,11 +164,7 @@ const struct vnodeopv_desc ffs_vnodeop_opv_desc =
|
|||
int (**ffs_specop_p)(void *);
|
||||
const struct vnodeopv_entry_desc ffs_specop_entries[] = {
|
||||
{ &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_open_desc, spec_open }, /* open */
|
||||
GENFS_SPECOP_ENTRIES,
|
||||
{ &vop_close_desc, ufsspec_close }, /* close */
|
||||
{ &vop_access_desc, genfs_access }, /* access */
|
||||
{ &vop_accessx_desc, ufs_accessx }, /* accessx */
|
||||
|
@ -176,38 +172,15 @@ const struct vnodeopv_entry_desc ffs_specop_entries[] = {
|
|||
{ &vop_setattr_desc, ufs_setattr }, /* setattr */
|
||||
{ &vop_read_desc, ufsspec_read }, /* read */
|
||||
{ &vop_write_desc, ufsspec_write }, /* write */
|
||||
{ &vop_fallocate_desc, spec_fallocate }, /* fallocate */
|
||||
{ &vop_fdiscard_desc, spec_fdiscard }, /* fdiscard */
|
||||
{ &vop_ioctl_desc, spec_ioctl }, /* ioctl */
|
||||
{ &vop_fcntl_desc, ufs_fcntl }, /* fcntl */
|
||||
{ &vop_poll_desc, spec_poll }, /* poll */
|
||||
{ &vop_kqfilter_desc, spec_kqfilter }, /* kqfilter */
|
||||
{ &vop_revoke_desc, spec_revoke }, /* revoke */
|
||||
{ &vop_mmap_desc, spec_mmap }, /* mmap */
|
||||
{ &vop_fsync_desc, ffs_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_inactive_desc, ufs_inactive }, /* inactive */
|
||||
{ &vop_reclaim_desc, ffs_reclaim }, /* reclaim */
|
||||
{ &vop_lock_desc, ufs_lock }, /* lock */
|
||||
{ &vop_unlock_desc, ufs_unlock }, /* unlock */
|
||||
{ &vop_bmap_desc, spec_bmap }, /* bmap */
|
||||
{ &vop_strategy_desc, spec_strategy }, /* strategy */
|
||||
{ &vop_print_desc, ufs_print }, /* print */
|
||||
{ &vop_islocked_desc, ufs_islocked }, /* islocked */
|
||||
{ &vop_pathconf_desc, spec_pathconf }, /* pathconf */
|
||||
{ &vop_advlock_desc, spec_advlock }, /* advlock */
|
||||
{ &vop_bwrite_desc, vn_bwrite }, /* bwrite */
|
||||
{ &vop_getpages_desc, spec_getpages }, /* getpages */
|
||||
{ &vop_putpages_desc, spec_putpages }, /* putpages */
|
||||
{ &vop_openextattr_desc, ffs_openextattr }, /* openextattr */
|
||||
{ &vop_closeextattr_desc, ffs_closeextattr }, /* closeextattr */
|
||||
{ &vop_getextattr_desc, ffs_getextattr }, /* getextattr */
|
||||
|
@ -225,11 +198,7 @@ const struct vnodeopv_desc ffs_specop_opv_desc =
|
|||
int (**ffs_fifoop_p)(void *);
|
||||
const struct vnodeopv_entry_desc ffs_fifoop_entries[] = {
|
||||
{ &vop_default_desc, vn_default_error },
|
||||
{ &vop_parsepath_desc, genfs_parsepath }, /* parsepath */
|
||||
{ &vop_lookup_desc, vn_fifo_bypass }, /* lookup */
|
||||
{ &vop_create_desc, vn_fifo_bypass }, /* create */
|
||||
{ &vop_mknod_desc, vn_fifo_bypass }, /* mknod */
|
||||
{ &vop_open_desc, vn_fifo_bypass }, /* open */
|
||||
GENFS_FIFOOP_ENTRIES,
|
||||
{ &vop_close_desc, ufsfifo_close }, /* close */
|
||||
{ &vop_access_desc, genfs_access }, /* access */
|
||||
{ &vop_accessx_desc, ufs_accessx }, /* accessx */
|
||||
|
@ -237,37 +206,16 @@ const struct vnodeopv_entry_desc ffs_fifoop_entries[] = {
|
|||
{ &vop_setattr_desc, ufs_setattr }, /* setattr */
|
||||
{ &vop_read_desc, ufsfifo_read }, /* read */
|
||||
{ &vop_write_desc, ufsfifo_write }, /* write */
|
||||
{ &vop_fallocate_desc, vn_fifo_bypass }, /* fallocate */
|
||||
{ &vop_fdiscard_desc, vn_fifo_bypass }, /* fdiscard */
|
||||
{ &vop_ioctl_desc, vn_fifo_bypass }, /* ioctl */
|
||||
{ &vop_fcntl_desc, ufs_fcntl }, /* fcntl */
|
||||
{ &vop_poll_desc, vn_fifo_bypass }, /* poll */
|
||||
{ &vop_kqfilter_desc, vn_fifo_bypass }, /* kqfilter */
|
||||
{ &vop_revoke_desc, vn_fifo_bypass }, /* revoke */
|
||||
{ &vop_mmap_desc, vn_fifo_bypass }, /* mmap */
|
||||
{ &vop_fsync_desc, ffs_fsync }, /* fsync */
|
||||
{ &vop_seek_desc, vn_fifo_bypass }, /* seek */
|
||||
{ &vop_remove_desc, vn_fifo_bypass }, /* remove */
|
||||
{ &vop_link_desc, vn_fifo_bypass }, /* link */
|
||||
{ &vop_rename_desc, vn_fifo_bypass }, /* rename */
|
||||
{ &vop_mkdir_desc, vn_fifo_bypass }, /* mkdir */
|
||||
{ &vop_rmdir_desc, vn_fifo_bypass }, /* rmdir */
|
||||
{ &vop_symlink_desc, vn_fifo_bypass }, /* symlink */
|
||||
{ &vop_readdir_desc, vn_fifo_bypass }, /* readdir */
|
||||
{ &vop_readlink_desc, vn_fifo_bypass }, /* readlink */
|
||||
{ &vop_abortop_desc, vn_fifo_bypass }, /* 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_bmap_desc, vn_fifo_bypass }, /* bmap */
|
||||
{ &vop_strategy_desc, ffsext_strategy }, /* strategy */
|
||||
{ &vop_print_desc, ufs_print }, /* print */
|
||||
{ &vop_islocked_desc, ufs_islocked }, /* islocked */
|
||||
{ &vop_pathconf_desc, vn_fifo_bypass }, /* pathconf */
|
||||
{ &vop_advlock_desc, vn_fifo_bypass }, /* advlock */
|
||||
{ &vop_bwrite_desc, vn_bwrite }, /* bwrite */
|
||||
{ &vop_putpages_desc, vn_fifo_bypass }, /* putpages */
|
||||
{ &vop_openextattr_desc, ffs_openextattr }, /* openextattr */
|
||||
{ &vop_closeextattr_desc, ffs_closeextattr }, /* closeextattr */
|
||||
{ &vop_getextattr_desc, ffs_getextattr }, /* getextattr */
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
/* $NetBSD: lfs_vnops.c,v 1.337 2021/06/29 22:34:09 dholland Exp $ */
|
||||
/* $NetBSD: lfs_vnops.c,v 1.338 2021/07/18 23:56:14 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.337 2021/06/29 22:34:09 dholland Exp $");
|
||||
__KERNEL_RCSID(0, "$NetBSD: lfs_vnops.c,v 1.338 2021/07/18 23:56:14 dholland Exp $");
|
||||
|
||||
#ifdef _KERNEL_OPT
|
||||
#include "opt_compat_netbsd.h"
|
||||
|
@ -241,11 +241,7 @@ const struct vnodeopv_desc lfs_vnodeop_opv_desc =
|
|||
int (**lfs_specop_p)(void *);
|
||||
const struct vnodeopv_entry_desc lfs_specop_entries[] = {
|
||||
{ &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_open_desc, spec_open }, /* open */
|
||||
GENFS_SPECOP_ENTRIES,
|
||||
{ &vop_close_desc, lfsspec_close }, /* close */
|
||||
{ &vop_access_desc, ulfs_access }, /* access */
|
||||
{ &vop_accessx_desc, genfs_accessx }, /* accessx */
|
||||
|
@ -253,38 +249,15 @@ const struct vnodeopv_entry_desc lfs_specop_entries[] = {
|
|||
{ &vop_setattr_desc, lfs_setattr }, /* setattr */
|
||||
{ &vop_read_desc, ulfsspec_read }, /* read */
|
||||
{ &vop_write_desc, ulfsspec_write }, /* write */
|
||||
{ &vop_fallocate_desc, spec_fallocate }, /* fallocate */
|
||||
{ &vop_fdiscard_desc, spec_fdiscard }, /* fdiscard */
|
||||
{ &vop_ioctl_desc, spec_ioctl }, /* ioctl */
|
||||
{ &vop_fcntl_desc, ulfs_fcntl }, /* fcntl */
|
||||
{ &vop_poll_desc, spec_poll }, /* poll */
|
||||
{ &vop_kqfilter_desc, spec_kqfilter }, /* kqfilter */
|
||||
{ &vop_revoke_desc, spec_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_inactive_desc, lfs_inactive }, /* inactive */
|
||||
{ &vop_reclaim_desc, lfs_reclaim }, /* reclaim */
|
||||
{ &vop_lock_desc, ulfs_lock }, /* lock */
|
||||
{ &vop_unlock_desc, ulfs_unlock }, /* unlock */
|
||||
{ &vop_bmap_desc, spec_bmap }, /* bmap */
|
||||
{ &vop_strategy_desc, spec_strategy }, /* strategy */
|
||||
{ &vop_print_desc, ulfs_print }, /* print */
|
||||
{ &vop_islocked_desc, ulfs_islocked }, /* islocked */
|
||||
{ &vop_pathconf_desc, spec_pathconf }, /* pathconf */
|
||||
{ &vop_advlock_desc, spec_advlock }, /* advlock */
|
||||
{ &vop_bwrite_desc, vn_bwrite }, /* bwrite */
|
||||
{ &vop_getpages_desc, spec_getpages }, /* getpages */
|
||||
{ &vop_putpages_desc, spec_putpages }, /* putpages */
|
||||
{ &vop_openextattr_desc, lfs_openextattr }, /* openextattr */
|
||||
{ &vop_closeextattr_desc, lfs_closeextattr }, /* closeextattr */
|
||||
{ &vop_getextattr_desc, lfs_getextattr }, /* getextattr */
|
||||
|
@ -299,11 +272,7 @@ const struct vnodeopv_desc lfs_specop_opv_desc =
|
|||
int (**lfs_fifoop_p)(void *);
|
||||
const struct vnodeopv_entry_desc lfs_fifoop_entries[] = {
|
||||
{ &vop_default_desc, vn_default_error },
|
||||
{ &vop_parsepath_desc, genfs_parsepath }, /* parsepath */
|
||||
{ &vop_lookup_desc, vn_fifo_bypass }, /* lookup */
|
||||
{ &vop_create_desc, vn_fifo_bypass }, /* create */
|
||||
{ &vop_mknod_desc, vn_fifo_bypass }, /* mknod */
|
||||
{ &vop_open_desc, vn_fifo_bypass }, /* open */
|
||||
GENFS_FIFOOP_ENTRIES,
|
||||
{ &vop_close_desc, lfsfifo_close }, /* close */
|
||||
{ &vop_access_desc, ulfs_access }, /* access */
|
||||
{ &vop_accessx_desc, genfs_accessx }, /* accessx */
|
||||
|
@ -311,37 +280,16 @@ const struct vnodeopv_entry_desc lfs_fifoop_entries[] = {
|
|||
{ &vop_setattr_desc, lfs_setattr }, /* setattr */
|
||||
{ &vop_read_desc, ulfsfifo_read }, /* read */
|
||||
{ &vop_write_desc, ulfsfifo_write }, /* write */
|
||||
{ &vop_fallocate_desc, vn_fifo_bypass }, /* fallocate */
|
||||
{ &vop_fdiscard_desc, vn_fifo_bypass }, /* fdiscard */
|
||||
{ &vop_ioctl_desc, vn_fifo_bypass }, /* ioctl */
|
||||
{ &vop_fcntl_desc, ulfs_fcntl }, /* fcntl */
|
||||
{ &vop_poll_desc, vn_fifo_bypass }, /* poll */
|
||||
{ &vop_kqfilter_desc, vn_fifo_bypass }, /* kqfilter */
|
||||
{ &vop_revoke_desc, vn_fifo_bypass }, /* revoke */
|
||||
{ &vop_mmap_desc, vn_fifo_bypass }, /* mmap */
|
||||
{ &vop_fsync_desc, vn_fifo_bypass }, /* fsync */
|
||||
{ &vop_seek_desc, vn_fifo_bypass }, /* seek */
|
||||
{ &vop_remove_desc, vn_fifo_bypass }, /* remove */
|
||||
{ &vop_link_desc, vn_fifo_bypass }, /* link */
|
||||
{ &vop_rename_desc, vn_fifo_bypass }, /* rename */
|
||||
{ &vop_mkdir_desc, vn_fifo_bypass }, /* mkdir */
|
||||
{ &vop_rmdir_desc, vn_fifo_bypass }, /* rmdir */
|
||||
{ &vop_symlink_desc, vn_fifo_bypass }, /* symlink */
|
||||
{ &vop_readdir_desc, vn_fifo_bypass }, /* readdir */
|
||||
{ &vop_readlink_desc, vn_fifo_bypass }, /* readlink */
|
||||
{ &vop_abortop_desc, vn_fifo_bypass }, /* 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_bmap_desc, vn_fifo_bypass }, /* bmap */
|
||||
{ &vop_strategy_desc, vn_fifo_bypass }, /* strategy */
|
||||
{ &vop_print_desc, ulfs_print }, /* print */
|
||||
{ &vop_islocked_desc, ulfs_islocked }, /* islocked */
|
||||
{ &vop_pathconf_desc, vn_fifo_bypass }, /* pathconf */
|
||||
{ &vop_advlock_desc, vn_fifo_bypass }, /* advlock */
|
||||
{ &vop_bwrite_desc, lfs_bwrite }, /* bwrite */
|
||||
{ &vop_putpages_desc, vn_fifo_bypass }, /* putpages */
|
||||
{ &vop_openextattr_desc, lfs_openextattr }, /* openextattr */
|
||||
{ &vop_closeextattr_desc, lfs_closeextattr }, /* closeextattr */
|
||||
{ &vop_getextattr_desc, lfs_getextattr }, /* getextattr */
|
||||
|
|
Loading…
Reference in New Issue