summaryrefslogtreecommitdiffstats
path: root/sys/miscfs/deadfs
diff options
context:
space:
mode:
authorthib <thib@openbsd.org>2010-12-21 20:14:43 +0000
committerthib <thib@openbsd.org>2010-12-21 20:14:43 +0000
commitdc81e71a031dc35750a5e3499915624ccc1049d5 (patch)
treed0dd4c45d81d2b6f992b2df8caa3f0c17fedf0d5 /sys/miscfs/deadfs
parentdon't leak short packets; ok mikeb@ (diff)
downloadwireguard-openbsd-dc81e71a031dc35750a5e3499915624ccc1049d5.tar.xz
wireguard-openbsd-dc81e71a031dc35750a5e3499915624ccc1049d5.zip
Bring back the "End the VOP experiment." diff, naddy's issues where
unrelated, and his alpha is much happier now. OK deraadt@
Diffstat (limited to 'sys/miscfs/deadfs')
-rw-r--r--sys/miscfs/deadfs/dead_vnops.c81
1 files changed, 38 insertions, 43 deletions
diff --git a/sys/miscfs/deadfs/dead_vnops.c b/sys/miscfs/deadfs/dead_vnops.c
index d2d5d6c216b..2c3e9520969 100644
--- a/sys/miscfs/deadfs/dead_vnops.c
+++ b/sys/miscfs/deadfs/dead_vnops.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: dead_vnops.c,v 1.24 2010/09/10 16:34:08 thib Exp $ */
+/* $OpenBSD: dead_vnops.c,v 1.25 2010/12/21 20:14:43 thib Exp $ */
/* $NetBSD: dead_vnops.c,v 1.16 1996/02/13 13:12:48 mycroft Exp $ */
/*
@@ -60,47 +60,42 @@ int dead_print(void *);
int chkvnlock(struct vnode *);
-int (**dead_vnodeop_p)(void *);
-
-struct vnodeopv_entry_desc dead_vnodeop_entries[] = {
- { &vop_default_desc, eopnotsupp },
- { &vop_lookup_desc, vop_generic_lookup },
- { &vop_create_desc, dead_badop },
- { &vop_mknod_desc, dead_badop },
- { &vop_open_desc, dead_open },
- { &vop_close_desc, nullop },
- { &vop_access_desc, dead_ebadf },
- { &vop_getattr_desc, dead_ebadf },
- { &vop_setattr_desc, dead_ebadf },
- { &vop_read_desc, dead_read },
- { &vop_write_desc, dead_write },
- { &vop_ioctl_desc, dead_ioctl },
- { &vop_poll_desc, dead_poll },
- { &vop_fsync_desc, nullop },
- { &vop_remove_desc, dead_badop },
- { &vop_link_desc, dead_badop },
- { &vop_rename_desc, dead_badop },
- { &vop_mkdir_desc, dead_badop },
- { &vop_rmdir_desc, dead_badop },
- { &vop_symlink_desc, dead_badop },
- { &vop_readdir_desc, dead_ebadf },
- { &vop_readlink_desc, dead_ebadf },
- { &vop_abortop_desc, dead_badop },
- { &vop_inactive_desc, nullop },
- { &vop_reclaim_desc, nullop },
- { &vop_lock_desc, dead_lock },
- { &vop_unlock_desc, vop_generic_unlock },
- { &vop_bmap_desc, dead_bmap },
- { &vop_strategy_desc, dead_strategy },
- { &vop_print_desc, dead_print },
- { &vop_islocked_desc, vop_generic_islocked },
- { &vop_pathconf_desc, dead_ebadf },
- { &vop_advlock_desc, dead_ebadf },
- { &vop_bwrite_desc, nullop },
- { (struct vnodeop_desc*)NULL, (int(*)(void *))NULL }
+struct vops dead_vops = {
+ .vop_default = eopnotsupp,
+ .vop_lookup = vop_generic_lookup,
+ .vop_create = dead_badop,
+ .vop_mknod = dead_badop,
+ .vop_open = dead_open,
+ .vop_close = nullop,
+ .vop_access = dead_ebadf,
+ .vop_getattr = dead_ebadf,
+ .vop_setattr = dead_ebadf,
+ .vop_read = dead_read,
+ .vop_write = dead_write,
+ .vop_ioctl = dead_ioctl,
+ .vop_poll = dead_poll,
+ .vop_fsync = nullop,
+ .vop_remove = dead_badop,
+ .vop_link = dead_badop,
+ .vop_rename = dead_badop,
+ .vop_mkdir = dead_badop,
+ .vop_rmdir = dead_badop,
+ .vop_symlink = dead_badop,
+ .vop_readdir = dead_ebadf,
+ .vop_readlink = dead_ebadf,
+ .vop_abortop = dead_badop,
+ .vop_inactive = nullop,
+ .vop_reclaim = nullop,
+ .vop_lock = dead_lock,
+ .vop_unlock = vop_generic_unlock,
+ .vop_bmap = dead_bmap,
+ .vop_strategy = dead_strategy,
+ .vop_print = dead_print,
+ .vop_islocked = vop_generic_islocked,
+ .vop_pathconf = dead_ebadf,
+ .vop_advlock = dead_ebadf,
+ .vop_bwrite = nullop,
};
-struct vnodeopv_desc dead_vnodeop_opv_desc =
- { &dead_vnodeop_p, dead_vnodeop_entries };
/*
* Open always fails as if device did not exist.
@@ -156,7 +151,7 @@ dead_ioctl(void *v)
if (!chkvnlock(ap->a_vp))
return (EBADF);
- return (VCALL(ap->a_vp, VOFFSET(vop_ioctl), ap));
+ return ((ap->a_vp->v_op->vop_ioctl)(ap));
}
/* ARGSUSED */
@@ -204,7 +199,7 @@ dead_lock(void *v)
if (ap->a_flags & LK_DRAIN || !chkvnlock(vp))
return (0);
- return (VCALL(vp, VOFFSET(vop_lock), ap));
+ return ((vp->v_op->vop_lock)(ap));
}
/*