summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--sys/fs/cd9660/cd9660_vnops.c68
-rw-r--r--sys/fs/fifofs/fifo.h48
-rw-r--r--sys/fs/fifofs/fifo_vnops.c110
-rw-r--r--sys/fs/specfs/spec_vnops.c116
-rw-r--r--sys/gnu/ext2fs/ext2_vnops.c110
-rw-r--r--sys/gnu/fs/ext2fs/ext2_vnops.c110
-rw-r--r--sys/isofs/cd9660/cd9660_vnops.c68
-rw-r--r--sys/kern/vfs_cache.c5
-rw-r--r--sys/miscfs/devfs/devfs_vnops.c41
-rw-r--r--sys/miscfs/fifofs/fifo.h48
-rw-r--r--sys/miscfs/fifofs/fifo_vnops.c110
-rw-r--r--sys/miscfs/specfs/spec_vnops.c116
-rw-r--r--sys/miscfs/specfs/specdev.h48
-rw-r--r--sys/nfs/nfs_vnops.c52
-rw-r--r--sys/nfsclient/nfs_vnops.c52
-rw-r--r--sys/ufs/ffs/ffs_vnops.c125
-rw-r--r--sys/ufs/lfs/lfs_vnops.c118
-rw-r--r--sys/ufs/mfs/mfs_vnops.c13
-rw-r--r--sys/ufs/ufs/ufs_extern.h6
-rw-r--r--sys/ufs/ufs/ufs_vnops.c155
20 files changed, 490 insertions, 1029 deletions
diff --git a/sys/fs/cd9660/cd9660_vnops.c b/sys/fs/cd9660/cd9660_vnops.c
index 9ad618f..607d7d6 100644
--- a/sys/fs/cd9660/cd9660_vnops.c
+++ b/sys/fs/cd9660/cd9660_vnops.c
@@ -36,7 +36,7 @@
* SUCH DAMAGE.
*
* @(#)cd9660_vnops.c 8.19 (Berkeley) 5/27/95
- * $Id: cd9660_vnops.c,v 1.41 1997/10/15 09:20:47 phk Exp $
+ * $Id: cd9660_vnops.c,v 1.42 1997/10/15 10:03:58 phk Exp $
*/
#include <sys/param.h>
@@ -1050,49 +1050,18 @@ VNODEOP_SET(cd9660_vnodeop_opv_desc);
*/
vop_t **cd9660_specop_p;
struct vnodeopv_entry_desc cd9660_specop_entries[] = {
- { &vop_default_desc, (vop_t *) vn_default_error },
- { &vop_abortop_desc, (vop_t *) spec_abortop },
+ { &vop_default_desc, (vop_t *) spec_vnoperate },
{ &vop_access_desc, (vop_t *) cd9660_access },
- { &vop_advlock_desc, (vop_t *) spec_advlock },
- { &vop_blkatoff_desc, (vop_t *) spec_blkatoff },
- { &vop_bmap_desc, (vop_t *) spec_bmap },
{ &vop_bwrite_desc, (vop_t *) vn_bwrite },
- { &vop_close_desc, (vop_t *) spec_close },
- { &vop_create_desc, (vop_t *) spec_create },
- { &vop_fsync_desc, (vop_t *) spec_fsync },
{ &vop_getattr_desc, (vop_t *) cd9660_getattr },
{ &vop_inactive_desc, (vop_t *) cd9660_inactive },
- { &vop_ioctl_desc, (vop_t *) spec_ioctl },
{ &vop_islocked_desc, (vop_t *) cd9660_islocked },
- { &vop_lease_desc, (vop_t *) spec_lease_check },
- { &vop_link_desc, (vop_t *) spec_link },
{ &vop_lock_desc, (vop_t *) cd9660_lock },
- { &vop_lookup_desc, (vop_t *) spec_lookup },
- { &vop_mkdir_desc, (vop_t *) spec_mkdir },
- { &vop_mknod_desc, (vop_t *) spec_mknod },
- { &vop_mmap_desc, (vop_t *) spec_mmap },
- { &vop_open_desc, (vop_t *) spec_open },
- { &vop_pathconf_desc, (vop_t *) spec_pathconf },
- { &vop_poll_desc, (vop_t *) spec_poll },
{ &vop_print_desc, (vop_t *) cd9660_print },
- { &vop_read_desc, (vop_t *) spec_read },
- { &vop_readdir_desc, (vop_t *) spec_readdir },
- { &vop_readlink_desc, (vop_t *) spec_readlink },
{ &vop_reclaim_desc, (vop_t *) cd9660_reclaim },
- { &vop_remove_desc, (vop_t *) spec_remove },
- { &vop_rename_desc, (vop_t *) spec_rename },
- { &vop_revoke_desc, (vop_t *) spec_revoke },
- { &vop_rmdir_desc, (vop_t *) spec_rmdir },
- { &vop_seek_desc, (vop_t *) spec_seek },
{ &vop_setattr_desc, (vop_t *) cd9660_setattr },
- { &vop_strategy_desc, (vop_t *) spec_strategy },
- { &vop_symlink_desc, (vop_t *) spec_symlink },
- { &vop_truncate_desc, (vop_t *) spec_truncate },
{ &vop_unlock_desc, (vop_t *) cd9660_unlock },
{ &vop_update_desc, (vop_t *) cd9660_update },
- { &vop_valloc_desc, (vop_t *) spec_valloc },
- { &vop_vfree_desc, (vop_t *) spec_vfree },
- { &vop_write_desc, (vop_t *) spec_write },
{ NULL, NULL }
};
static struct vnodeopv_desc cd9660_specop_opv_desc =
@@ -1101,49 +1070,18 @@ VNODEOP_SET(cd9660_specop_opv_desc);
vop_t **cd9660_fifoop_p;
struct vnodeopv_entry_desc cd9660_fifoop_entries[] = {
- { &vop_default_desc, (vop_t *) vn_default_error },
- { &vop_abortop_desc, (vop_t *) fifo_abortop },
+ { &vop_default_desc, (vop_t *) fifo_vnoperate },
{ &vop_access_desc, (vop_t *) cd9660_access },
- { &vop_advlock_desc, (vop_t *) fifo_advlock },
- { &vop_blkatoff_desc, (vop_t *) fifo_blkatoff },
- { &vop_bmap_desc, (vop_t *) fifo_bmap },
{ &vop_bwrite_desc, (vop_t *) vn_bwrite },
- { &vop_close_desc, (vop_t *) fifo_close },
- { &vop_create_desc, (vop_t *) fifo_create },
- { &vop_fsync_desc, (vop_t *) fifo_fsync },
{ &vop_getattr_desc, (vop_t *) cd9660_getattr },
{ &vop_inactive_desc, (vop_t *) cd9660_inactive },
- { &vop_ioctl_desc, (vop_t *) fifo_ioctl },
{ &vop_islocked_desc, (vop_t *) cd9660_islocked },
- { &vop_lease_desc, (vop_t *) fifo_lease_check },
- { &vop_link_desc, (vop_t *) fifo_link },
{ &vop_lock_desc, (vop_t *) cd9660_lock },
- { &vop_lookup_desc, (vop_t *) fifo_lookup },
- { &vop_mkdir_desc, (vop_t *) fifo_mkdir },
- { &vop_mknod_desc, (vop_t *) fifo_mknod },
- { &vop_mmap_desc, (vop_t *) fifo_mmap },
- { &vop_open_desc, (vop_t *) fifo_open },
- { &vop_pathconf_desc, (vop_t *) fifo_pathconf },
- { &vop_poll_desc, (vop_t *) fifo_poll },
{ &vop_print_desc, (vop_t *) cd9660_print },
- { &vop_read_desc, (vop_t *) fifo_read },
- { &vop_readdir_desc, (vop_t *) fifo_readdir },
- { &vop_readlink_desc, (vop_t *) fifo_readlink },
{ &vop_reclaim_desc, (vop_t *) cd9660_reclaim },
- { &vop_remove_desc, (vop_t *) fifo_remove },
- { &vop_rename_desc, (vop_t *) fifo_rename },
- { &vop_revoke_desc, (vop_t *) fifo_revoke },
- { &vop_rmdir_desc, (vop_t *) fifo_rmdir },
- { &vop_seek_desc, (vop_t *) fifo_seek },
{ &vop_setattr_desc, (vop_t *) cd9660_setattr },
- { &vop_strategy_desc, (vop_t *) fifo_strategy },
- { &vop_symlink_desc, (vop_t *) fifo_symlink },
- { &vop_truncate_desc, (vop_t *) fifo_truncate },
{ &vop_unlock_desc, (vop_t *) cd9660_unlock },
{ &vop_update_desc, (vop_t *) cd9660_update },
- { &vop_valloc_desc, (vop_t *) fifo_valloc },
- { &vop_vfree_desc, (vop_t *) fifo_vfree },
- { &vop_write_desc, (vop_t *) fifo_write },
{ NULL, NULL }
};
static struct vnodeopv_desc cd9660_fifoop_opv_desc =
diff --git a/sys/fs/fifofs/fifo.h b/sys/fs/fifofs/fifo.h
index 38314de..ec186d0d 100644
--- a/sys/fs/fifofs/fifo.h
+++ b/sys/fs/fifofs/fifo.h
@@ -31,7 +31,7 @@
* SUCH DAMAGE.
*
* @(#)fifo.h 8.6 (Berkeley) 5/21/95
- * $Id: fifo.h,v 1.13 1997/02/22 09:40:17 peter Exp $
+ * $Id: fifo.h,v 1.14 1997/09/14 02:57:51 peter Exp $
*/
extern vop_t **fifo_vnodeop_p;
@@ -39,48 +39,6 @@ extern vop_t **fifo_vnodeop_p;
/*
* Prototypes for fifo operations on vnodes.
*/
-int fifo_badop __P((void));
+int fifo_vnoperate __P((struct vop_generic_args *));
int fifo_printinfo __P((struct vnode *));
-int fifo_lookup __P((struct vop_lookup_args *));
-#define fifo_create ((int (*) __P((struct vop_create_args *)))fifo_badop)
-#define fifo_mknod ((int (*) __P((struct vop_mknod_args *)))fifo_badop)
-int fifo_open __P((struct vop_open_args *));
-int fifo_close __P((struct vop_close_args *));
-#define fifo_access ((int (*) __P((struct vop_access_args *)))fifo_ebadf)
-#define fifo_getattr ((int (*) __P((struct vop_getattr_args *)))fifo_ebadf)
-#define fifo_setattr ((int (*) __P((struct vop_setattr_args *)))fifo_ebadf)
-int fifo_read __P((struct vop_read_args *));
-int fifo_write __P((struct vop_write_args *));
-#define fifo_lease_check ((int (*) __P((struct vop_lease_args *)))nullop)
-int fifo_ioctl __P((struct vop_ioctl_args *));
-int fifo_poll __P((struct vop_poll_args *));
-#define fifo_revoke vop_revoke
-#define fifo_mmap ((int (*) __P((struct vop_mmap_args *)))fifo_badop)
-#define fifo_fsync ((int (*) __P((struct vop_fsync_args *)))nullop)
-#define fifo_seek ((int (*) __P((struct vop_seek_args *)))fifo_badop)
-#define fifo_remove ((int (*) __P((struct vop_remove_args *)))fifo_badop)
-#define fifo_link ((int (*) __P((struct vop_link_args *)))fifo_badop)
-#define fifo_rename ((int (*) __P((struct vop_rename_args *)))fifo_badop)
-#define fifo_mkdir ((int (*) __P((struct vop_mkdir_args *)))fifo_badop)
-#define fifo_rmdir ((int (*) __P((struct vop_rmdir_args *)))fifo_badop)
-#define fifo_symlink ((int (*) __P((struct vop_symlink_args *)))fifo_badop)
-#define fifo_readdir ((int (*) __P((struct vop_readdir_args *)))fifo_badop)
-#define fifo_readlink ((int (*) __P((struct vop_readlink_args *)))fifo_badop)
-#define fifo_abortop ((int (*) __P((struct vop_abortop_args *)))fifo_badop)
-int fifo_inactive __P((struct vop_inactive_args *));
-#define fifo_reclaim ((int (*) __P((struct vop_reclaim_args *)))nullop)
-#define fifo_lock ((int (*) __P((struct vop_lock_args *)))vop_nolock)
-#define fifo_unlock ((int (*) __P((struct vop_unlock_args *)))vop_nounlock)
-int fifo_bmap __P((struct vop_bmap_args *));
-#define fifo_strategy ((int (*) __P((struct vop_strategy_args *)))fifo_badop)
-#define fifo_islocked ((int(*) __P((struct vop_islocked_args *)))vop_noislocked)
-int fifo_pathconf __P((struct vop_pathconf_args *));
-int fifo_advlock __P((struct vop_advlock_args *));
-#define fifo_blkatoff ((int (*) __P((struct vop_blkatoff_args *)))fifo_badop)
-#define fifo_valloc ((int (*) __P((struct vop_valloc_args *)))fifo_badop)
-#define fifo_reallocblks \
- ((int (*) __P((struct vop_reallocblks_args *)))fifo_badop)
-#define fifo_vfree ((int (*) __P((struct vop_vfree_args *)))fifo_badop)
-#define fifo_truncate ((int (*) __P((struct vop_truncate_args *)))nullop)
-#define fifo_update ((int (*) __P((struct vop_update_args *)))nullop)
-#define fifo_bwrite ((int (*) __P((struct vop_bwrite_args *)))nullop)
+
diff --git a/sys/fs/fifofs/fifo_vnops.c b/sys/fs/fifofs/fifo_vnops.c
index e8eb873..7bddac3 100644
--- a/sys/fs/fifofs/fifo_vnops.c
+++ b/sys/fs/fifofs/fifo_vnops.c
@@ -31,7 +31,7 @@
* SUCH DAMAGE.
*
* @(#)fifo_vnops.c 8.10 (Berkeley) 5/27/95
- * $Id: fifo_vnops.c,v 1.29 1997/10/15 09:21:00 phk Exp $
+ * $Id: fifo_vnops.c,v 1.30 1997/10/15 10:04:18 phk Exp $
*/
#include <sys/param.h>
@@ -61,52 +61,66 @@ struct fifoinfo {
};
static int fifo_ebadf __P((void));
+static int fifo_badop __P((void));
static int fifo_print __P((struct vop_print_args *));
+static int fifo_lookup __P((struct vop_lookup_args *));
+static int fifo_open __P((struct vop_open_args *));
+static int fifo_close __P((struct vop_close_args *));
+static int fifo_read __P((struct vop_read_args *));
+static int fifo_write __P((struct vop_write_args *));
+static int fifo_ioctl __P((struct vop_ioctl_args *));
+static int fifo_poll __P((struct vop_poll_args *));
+static int fifo_inactive __P((struct vop_inactive_args *));
+static int fifo_bmap __P((struct vop_bmap_args *));
+static int fifo_pathconf __P((struct vop_pathconf_args *));
+static int fifo_advlock __P((struct vop_advlock_args *));
+
vop_t **fifo_vnodeop_p;
static struct vnodeopv_entry_desc fifo_vnodeop_entries[] = {
{ &vop_default_desc, (vop_t *) vn_default_error },
- { &vop_abortop_desc, (vop_t *) fifo_abortop },
- { &vop_access_desc, (vop_t *) fifo_access },
+ { &vop_abortop_desc, (vop_t *) fifo_badop },
+ { &vop_access_desc, (vop_t *) fifo_ebadf },
{ &vop_advlock_desc, (vop_t *) fifo_advlock },
- { &vop_blkatoff_desc, (vop_t *) fifo_blkatoff },
+ { &vop_blkatoff_desc, (vop_t *) fifo_badop },
{ &vop_bmap_desc, (vop_t *) fifo_bmap },
- { &vop_bwrite_desc, (vop_t *) fifo_bwrite },
+ { &vop_bwrite_desc, (vop_t *) nullop },
{ &vop_close_desc, (vop_t *) fifo_close },
- { &vop_create_desc, (vop_t *) fifo_create },
- { &vop_fsync_desc, (vop_t *) fifo_fsync },
- { &vop_getattr_desc, (vop_t *) fifo_getattr },
+ { &vop_create_desc, (vop_t *) fifo_badop },
+ { &vop_fsync_desc, (vop_t *) nullop },
+ { &vop_getattr_desc, (vop_t *) fifo_ebadf },
{ &vop_inactive_desc, (vop_t *) fifo_inactive },
{ &vop_ioctl_desc, (vop_t *) fifo_ioctl },
- { &vop_islocked_desc, (vop_t *) fifo_islocked },
- { &vop_lease_desc, (vop_t *) fifo_lease_check },
- { &vop_link_desc, (vop_t *) fifo_link },
- { &vop_lock_desc, (vop_t *) fifo_lock },
+ { &vop_islocked_desc, (vop_t *) vop_noislocked },
+ { &vop_lease_desc, (vop_t *) nullop },
+ { &vop_link_desc, (vop_t *) fifo_badop },
+ { &vop_lock_desc, (vop_t *) vop_nolock },
{ &vop_lookup_desc, (vop_t *) fifo_lookup },
- { &vop_mkdir_desc, (vop_t *) fifo_mkdir },
- { &vop_mknod_desc, (vop_t *) fifo_mknod },
- { &vop_mmap_desc, (vop_t *) fifo_mmap },
+ { &vop_mkdir_desc, (vop_t *) fifo_badop },
+ { &vop_mknod_desc, (vop_t *) fifo_badop },
+ { &vop_mmap_desc, (vop_t *) fifo_badop },
{ &vop_open_desc, (vop_t *) fifo_open },
{ &vop_pathconf_desc, (vop_t *) fifo_pathconf },
{ &vop_poll_desc, (vop_t *) fifo_poll },
{ &vop_print_desc, (vop_t *) fifo_print },
{ &vop_read_desc, (vop_t *) fifo_read },
- { &vop_readdir_desc, (vop_t *) fifo_readdir },
- { &vop_readlink_desc, (vop_t *) fifo_readlink },
- { &vop_reclaim_desc, (vop_t *) fifo_reclaim },
- { &vop_remove_desc, (vop_t *) fifo_remove },
- { &vop_rename_desc, (vop_t *) fifo_rename },
- { &vop_revoke_desc, (vop_t *) fifo_revoke },
- { &vop_rmdir_desc, (vop_t *) fifo_rmdir },
- { &vop_seek_desc, (vop_t *) fifo_seek },
- { &vop_setattr_desc, (vop_t *) fifo_setattr },
- { &vop_strategy_desc, (vop_t *) fifo_strategy },
- { &vop_symlink_desc, (vop_t *) fifo_symlink },
- { &vop_truncate_desc, (vop_t *) fifo_truncate },
- { &vop_unlock_desc, (vop_t *) fifo_unlock },
- { &vop_update_desc, (vop_t *) fifo_update },
- { &vop_valloc_desc, (vop_t *) fifo_valloc },
- { &vop_vfree_desc, (vop_t *) fifo_vfree },
+ { &vop_readdir_desc, (vop_t *) fifo_badop },
+ { &vop_readlink_desc, (vop_t *) fifo_badop },
+ { &vop_reallocblks_desc, (vop_t *) fifo_badop },
+ { &vop_reclaim_desc, (vop_t *) nullop },
+ { &vop_remove_desc, (vop_t *) fifo_badop },
+ { &vop_rename_desc, (vop_t *) fifo_badop },
+ { &vop_revoke_desc, (vop_t *) vop_revoke },
+ { &vop_rmdir_desc, (vop_t *) fifo_badop },
+ { &vop_seek_desc, (vop_t *) fifo_badop },
+ { &vop_setattr_desc, (vop_t *) fifo_ebadf },
+ { &vop_strategy_desc, (vop_t *) fifo_badop },
+ { &vop_symlink_desc, (vop_t *) fifo_badop },
+ { &vop_truncate_desc, (vop_t *) fifo_badop },
+ { &vop_unlock_desc, (vop_t *) vop_nounlock },
+ { &vop_update_desc, (vop_t *) nullop },
+ { &vop_valloc_desc, (vop_t *) fifo_badop },
+ { &vop_vfree_desc, (vop_t *) fifo_badop },
{ &vop_write_desc, (vop_t *) fifo_write },
{ NULL, NULL }
};
@@ -115,11 +129,21 @@ static struct vnodeopv_desc fifo_vnodeop_opv_desc =
VNODEOP_SET(fifo_vnodeop_opv_desc);
+int
+fifo_vnoperate(ap)
+ struct vop_generic_args /* {
+ struct vnodeop_desc *a_desc;
+ <other random data follows, presumably>
+ } */ *ap;
+{
+ return (VOCALL(fifo_vnodeop_p, ap->a_desc->vdesc_offset, ap));
+}
+
/*
* Trivial lookup routine that always fails.
*/
/* ARGSUSED */
-int
+static int
fifo_lookup(ap)
struct vop_lookup_args /* {
struct vnode * a_dvp;
@@ -137,7 +161,7 @@ fifo_lookup(ap)
* to find an active instance of a fifo.
*/
/* ARGSUSED */
-int
+static int
fifo_open(ap)
struct vop_open_args /* {
struct vnode *a_vp;
@@ -236,7 +260,7 @@ bad:
* Vnode op for read
*/
/* ARGSUSED */
-int
+static int
fifo_read(ap)
struct vop_read_args /* {
struct vnode *a_vp;
@@ -277,7 +301,7 @@ fifo_read(ap)
* Vnode op for write
*/
/* ARGSUSED */
-int
+static int
fifo_write(ap)
struct vop_write_args /* {
struct vnode *a_vp;
@@ -309,7 +333,7 @@ fifo_write(ap)
* Device ioctl operation.
*/
/* ARGSUSED */
-int
+static int
fifo_ioctl(ap)
struct vop_ioctl_args /* {
struct vnode *a_vp;
@@ -341,7 +365,7 @@ fifo_ioctl(ap)
}
/* ARGSUSED */
-int
+static int
fifo_poll(ap)
struct vop_poll_args /* {
struct vnode *a_vp;
@@ -368,7 +392,7 @@ fifo_poll(ap)
return (revents);
}
-int
+static int
fifo_inactive(ap)
struct vop_inactive_args /* {
struct vnode *a_vp;
@@ -383,7 +407,7 @@ fifo_inactive(ap)
/*
* This is a noop, simply returning what one has been given.
*/
-int
+static int
fifo_bmap(ap)
struct vop_bmap_args /* {
struct vnode *a_vp;
@@ -410,7 +434,7 @@ fifo_bmap(ap)
* Device close routine
*/
/* ARGSUSED */
-int
+static int
fifo_close(ap)
struct vop_close_args /* {
struct vnode *a_vp;
@@ -478,7 +502,7 @@ fifo_print(ap)
/*
* Return POSIX pathconf information applicable to fifo's.
*/
-int
+static int
fifo_pathconf(ap)
struct vop_pathconf_args /* {
struct vnode *a_vp;
@@ -517,7 +541,7 @@ fifo_ebadf()
* Fifo advisory byte-level locks.
*/
/* ARGSUSED */
-int
+static int
fifo_advlock(ap)
struct vop_advlock_args /* {
struct vnode *a_vp;
@@ -534,7 +558,7 @@ fifo_advlock(ap)
/*
* Fifo bad operation
*/
-int
+static int
fifo_badop()
{
diff --git a/sys/fs/specfs/spec_vnops.c b/sys/fs/specfs/spec_vnops.c
index cb300d6..73361c2 100644
--- a/sys/fs/specfs/spec_vnops.c
+++ b/sys/fs/specfs/spec_vnops.c
@@ -31,7 +31,7 @@
* SUCH DAMAGE.
*
* @(#)spec_vnops.c 8.14 (Berkeley) 5/21/95
- * $Id: spec_vnops.c,v 1.44 1997/10/15 09:21:22 phk Exp $
+ * $Id: spec_vnops.c,v 1.45 1997/10/15 10:04:43 phk Exp $
*/
#include <sys/param.h>
@@ -60,53 +60,70 @@
static int spec_ebadf __P((void));
static int spec_getattr __P((struct vop_getattr_args *));
+static int spec_badop __P((void));
+static int spec_strategy __P((struct vop_strategy_args *));
+static int spec_print __P((struct vop_print_args *));
+static int spec_lookup __P((struct vop_lookup_args *));
+static int spec_open __P((struct vop_open_args *));
+static int spec_close __P((struct vop_close_args *));
+static int spec_read __P((struct vop_read_args *));
+static int spec_write __P((struct vop_write_args *));
+static int spec_ioctl __P((struct vop_ioctl_args *));
+static int spec_poll __P((struct vop_poll_args *));
+static int spec_inactive __P((struct vop_inactive_args *));
+static int spec_fsync __P((struct vop_fsync_args *));
+static int spec_bmap __P((struct vop_bmap_args *));
+static int spec_pathconf __P((struct vop_pathconf_args *));
+static int spec_advlock __P((struct vop_advlock_args *));
+static int spec_getpages __P((struct vop_getpages_args *));
struct vnode *speclisth[SPECHSZ];
vop_t **spec_vnodeop_p;
static struct vnodeopv_entry_desc spec_vnodeop_entries[] = {
{ &vop_default_desc, (vop_t *) vn_default_error },
- { &vop_abortop_desc, (vop_t *) spec_abortop },
- { &vop_access_desc, (vop_t *) spec_access },
+ { &vop_abortop_desc, (vop_t *) spec_badop },
+ { &vop_access_desc, (vop_t *) spec_ebadf },
{ &vop_advlock_desc, (vop_t *) spec_advlock },
- { &vop_blkatoff_desc, (vop_t *) spec_blkatoff },
+ { &vop_blkatoff_desc, (vop_t *) spec_badop },
{ &vop_bmap_desc, (vop_t *) spec_bmap },
- { &vop_bwrite_desc, (vop_t *) vn_bwrite },
+ { &vop_bwrite_desc, (vop_t *) nullop },
{ &vop_close_desc, (vop_t *) spec_close },
- { &vop_create_desc, (vop_t *) spec_create },
+ { &vop_create_desc, (vop_t *) spec_badop },
{ &vop_fsync_desc, (vop_t *) spec_fsync },
{ &vop_getattr_desc, (vop_t *) spec_getattr },
{ &vop_getpages_desc, (vop_t *) spec_getpages },
{ &vop_inactive_desc, (vop_t *) spec_inactive },
{ &vop_ioctl_desc, (vop_t *) spec_ioctl },
- { &vop_islocked_desc, (vop_t *) spec_islocked },
- { &vop_lease_desc, (vop_t *) spec_lease_check },
- { &vop_link_desc, (vop_t *) spec_link },
- { &vop_lock_desc, (vop_t *) spec_lock },
+ { &vop_islocked_desc, (vop_t *) vop_noislocked },
+ { &vop_lease_desc, (vop_t *) nullop },
+ { &vop_link_desc, (vop_t *) spec_badop },
+ { &vop_lock_desc, (vop_t *) vop_nolock },
{ &vop_lookup_desc, (vop_t *) spec_lookup },
- { &vop_mkdir_desc, (vop_t *) spec_mkdir },
- { &vop_mknod_desc, (vop_t *) spec_mknod },
- { &vop_mmap_desc, (vop_t *) spec_mmap },
+ { &vop_mkdir_desc, (vop_t *) spec_badop },
+ { &vop_mknod_desc, (vop_t *) spec_badop },
+ { &vop_mmap_desc, (vop_t *) spec_badop },
{ &vop_open_desc, (vop_t *) spec_open },
{ &vop_pathconf_desc, (vop_t *) spec_pathconf },
{ &vop_poll_desc, (vop_t *) spec_poll },
{ &vop_print_desc, (vop_t *) spec_print },
{ &vop_read_desc, (vop_t *) spec_read },
- { &vop_readdir_desc, (vop_t *) spec_readdir },
- { &vop_readlink_desc, (vop_t *) spec_readlink },
- { &vop_reclaim_desc, (vop_t *) spec_reclaim },
- { &vop_remove_desc, (vop_t *) spec_remove },
- { &vop_rename_desc, (vop_t *) spec_rename },
- { &vop_revoke_desc, (vop_t *) spec_revoke },
- { &vop_rmdir_desc, (vop_t *) spec_rmdir },
- { &vop_seek_desc, (vop_t *) spec_seek },
- { &vop_setattr_desc, (vop_t *) spec_setattr },
+ { &vop_readdir_desc, (vop_t *) spec_badop },
+ { &vop_readlink_desc, (vop_t *) spec_badop },
+ { &vop_reallocblks_desc, (vop_t *) spec_badop },
+ { &vop_reclaim_desc, (vop_t *) nullop },
+ { &vop_remove_desc, (vop_t *) spec_badop },
+ { &vop_rename_desc, (vop_t *) spec_badop },
+ { &vop_revoke_desc, (vop_t *) vop_revoke },
+ { &vop_rmdir_desc, (vop_t *) spec_badop },
+ { &vop_seek_desc, (vop_t *) spec_badop },
+ { &vop_setattr_desc, (vop_t *) spec_ebadf },
{ &vop_strategy_desc, (vop_t *) spec_strategy },
- { &vop_symlink_desc, (vop_t *) spec_symlink },
- { &vop_truncate_desc, (vop_t *) spec_truncate },
- { &vop_unlock_desc, (vop_t *) spec_unlock },
- { &vop_update_desc, (vop_t *) spec_update },
- { &vop_valloc_desc, (vop_t *) spec_valloc },
- { &vop_vfree_desc, (vop_t *) spec_vfree },
+ { &vop_symlink_desc, (vop_t *) spec_badop },
+ { &vop_truncate_desc, (vop_t *) nullop },
+ { &vop_unlock_desc, (vop_t *) vop_nounlock },
+ { &vop_update_desc, (vop_t *) nullop },
+ { &vop_valloc_desc, (vop_t *) spec_badop },
+ { &vop_vfree_desc, (vop_t *) spec_badop },
{ &vop_write_desc, (vop_t *) spec_write },
{ NULL, NULL }
};
@@ -115,12 +132,23 @@ static struct vnodeopv_desc spec_vnodeop_opv_desc =
VNODEOP_SET(spec_vnodeop_opv_desc);
+
+int
+spec_vnoperate(ap)
+ struct vop_generic_args /* {
+ struct vnodeop_desc *a_desc;
+ <other random data follows, presumably>
+ } */ *ap;
+{
+ return (VOCALL(spec_vnodeop_p, ap->a_desc->vdesc_offset, ap));
+}
+
static void spec_getpages_iodone __P((struct buf *bp));
/*
* Trivial lookup routine that always fails.
*/
-int
+static int
spec_lookup(ap)
struct vop_lookup_args /* {
struct vnode *a_dvp;
@@ -137,7 +165,7 @@ spec_lookup(ap)
* Open a special file.
*/
/* ARGSUSED */
-int
+static int
spec_open(ap)
struct vop_open_args /* {
struct vnode *a_vp;
@@ -236,7 +264,7 @@ spec_open(ap)
* Vnode op for read
*/
/* ARGSUSED */
-int
+static int
spec_read(ap)
struct vop_read_args /* {
struct vnode *a_vp;
@@ -318,7 +346,7 @@ spec_read(ap)
* Vnode op for write
*/
/* ARGSUSED */
-int
+static int
spec_write(ap)
struct vop_write_args /* {
struct vnode *a_vp;
@@ -399,7 +427,7 @@ spec_write(ap)
* Device ioctl operation.
*/
/* ARGSUSED */
-int
+static int
spec_ioctl(ap)
struct vop_ioctl_args /* {
struct vnode *a_vp;
@@ -435,7 +463,7 @@ spec_ioctl(ap)
}
/* ARGSUSED */
-int
+static int
spec_poll(ap)
struct vop_poll_args /* {
struct vnode *a_vp;
@@ -460,7 +488,7 @@ spec_poll(ap)
* Synch buffers associated with a block device
*/
/* ARGSUSED */
-int
+static int
spec_fsync(ap)
struct vop_fsync_args /* {
struct vnode *a_vp;
@@ -510,7 +538,7 @@ loop:
return (0);
}
-int
+static int
spec_inactive(ap)
struct vop_inactive_args /* {
struct vnode *a_vp;
@@ -525,7 +553,7 @@ spec_inactive(ap)
/*
* Just call the device strategy routine
*/
-int
+static int
spec_strategy(ap)
struct vop_strategy_args /* {
struct buf *a_bp;
@@ -539,7 +567,7 @@ spec_strategy(ap)
/*
* This is a noop, simply returning what one has been given.
*/
-int
+static int
spec_bmap(ap)
struct vop_bmap_args /* {
struct vnode *a_vp;
@@ -566,7 +594,7 @@ spec_bmap(ap)
* Device close routine
*/
/* ARGSUSED */
-int
+static int
spec_close(ap)
struct vop_close_args /* {
struct vnode *a_vp;
@@ -652,7 +680,7 @@ spec_close(ap)
/*
* Print out the contents of a special device vnode.
*/
-int
+static int
spec_print(ap)
struct vop_print_args /* {
struct vnode *a_vp;
@@ -667,7 +695,7 @@ spec_print(ap)
/*
* Return POSIX pathconf information applicable to special devices.
*/
-int
+static int
spec_pathconf(ap)
struct vop_pathconf_args /* {
struct vnode *a_vp;
@@ -705,7 +733,7 @@ spec_pathconf(ap)
* Special device advisory byte-level locks.
*/
/* ARGSUSED */
-int
+static int
spec_advlock(ap)
struct vop_advlock_args /* {
struct vnode *a_vp;
@@ -732,7 +760,7 @@ spec_ebadf()
/*
* Special device bad operation
*/
-int
+static int
spec_badop()
{
@@ -749,7 +777,7 @@ spec_getpages_iodone(bp)
wakeup(bp);
}
-int
+static int
spec_getpages(ap)
struct vop_getpages_args *ap;
{
diff --git a/sys/gnu/ext2fs/ext2_vnops.c b/sys/gnu/ext2fs/ext2_vnops.c
index ff82e6a..97225aa 100644
--- a/sys/gnu/ext2fs/ext2_vnops.c
+++ b/sys/gnu/ext2fs/ext2_vnops.c
@@ -83,45 +83,15 @@ static int ext2_write __P((struct vop_write_args *));
/* Global vfs data structures for ufs. */
vop_t **ext2_vnodeop_p;
static struct vnodeopv_entry_desc ext2_vnodeop_entries[] = {
- { &vop_default_desc, (vop_t *) vn_default_error },
- { &vop_abortop_desc, (vop_t *) ufs_abortop },
- { &vop_access_desc, (vop_t *) ufs_access },
- { &vop_advlock_desc, (vop_t *) ufs_advlock },
+ { &vop_default_desc, (vop_t *) ufs_vnoperate },
{ &vop_blkatoff_desc, (vop_t *) ext2_blkatoff },
- { &vop_bmap_desc, (vop_t *) ufs_bmap },
- { &vop_bwrite_desc, (vop_t *) vn_bwrite },
{ &vop_cachedlookup_desc, (vop_t *) ext2_lookup },
- { &vop_close_desc, (vop_t *) ufs_close },
- { &vop_create_desc, (vop_t *) ufs_create },
{ &vop_fsync_desc, (vop_t *) ext2_fsync },
- { &vop_getattr_desc, (vop_t *) ufs_getattr },
{ &vop_inactive_desc, (vop_t *) ext2_inactive },
- { &vop_ioctl_desc, (vop_t *) ufs_ioctl },
- { &vop_islocked_desc, (vop_t *) ufs_islocked },
- { &vop_link_desc, (vop_t *) ufs_link },
- { &vop_lock_desc, (vop_t *) ufs_lock },
- { &vop_lookup_desc, (vop_t *) vfs_cache_lookup },
- { &vop_mkdir_desc, (vop_t *) ufs_mkdir },
- { &vop_mknod_desc, (vop_t *) ufs_mknod },
- { &vop_mmap_desc, (vop_t *) ufs_mmap },
- { &vop_open_desc, (vop_t *) ufs_open },
- { &vop_pathconf_desc, (vop_t *) ufs_pathconf },
- { &vop_poll_desc, (vop_t *) ufs_poll },
- { &vop_print_desc, (vop_t *) ufs_print },
{ &vop_read_desc, (vop_t *) ext2_read },
{ &vop_readdir_desc, (vop_t *) ext2_readdir },
- { &vop_readlink_desc, (vop_t *) ufs_readlink },
{ &vop_reallocblks_desc, (vop_t *) ext2_reallocblks },
- { &vop_reclaim_desc, (vop_t *) ufs_reclaim },
- { &vop_remove_desc, (vop_t *) ufs_remove },
- { &vop_rename_desc, (vop_t *) ufs_rename },
- { &vop_rmdir_desc, (vop_t *) ufs_rmdir },
- { &vop_seek_desc, (vop_t *) ufs_seek },
- { &vop_setattr_desc, (vop_t *) ufs_setattr },
- { &vop_strategy_desc, (vop_t *) ufs_strategy },
- { &vop_symlink_desc, (vop_t *) ufs_symlink },
{ &vop_truncate_desc, (vop_t *) ext2_truncate },
- { &vop_unlock_desc, (vop_t *) ufs_unlock },
{ &vop_update_desc, (vop_t *) ext2_update },
{ &vop_valloc_desc, (vop_t *) ext2_valloc },
{ &vop_vfree_desc, (vop_t *) ext2_vfree },
@@ -133,48 +103,11 @@ static struct vnodeopv_desc ext2fs_vnodeop_opv_desc =
vop_t **ext2_specop_p;
static struct vnodeopv_entry_desc ext2_specop_entries[] = {
- { &vop_default_desc, (vop_t *) vn_default_error },
- { &vop_abortop_desc, (vop_t *) spec_abortop },
- { &vop_access_desc, (vop_t *) ufs_access },
- { &vop_advlock_desc, (vop_t *) spec_advlock },
- { &vop_blkatoff_desc, (vop_t *) spec_blkatoff },
- { &vop_bmap_desc, (vop_t *) spec_bmap },
- { &vop_bwrite_desc, (vop_t *) vn_bwrite },
- { &vop_close_desc, (vop_t *) ufsspec_close },
- { &vop_create_desc, (vop_t *) spec_create },
+ { &vop_default_desc, (vop_t *) ufs_vnoperatespec },
{ &vop_fsync_desc, (vop_t *) ext2_fsync },
- { &vop_getattr_desc, (vop_t *) ufs_getattr },
{ &vop_inactive_desc, (vop_t *) ext2_inactive },
- { &vop_ioctl_desc, (vop_t *) spec_ioctl },
- { &vop_islocked_desc, (vop_t *) ufs_islocked },
- { &vop_link_desc, (vop_t *) spec_link },
- { &vop_lock_desc, (vop_t *) ufs_lock },
- { &vop_lookup_desc, (vop_t *) spec_lookup },
- { &vop_mkdir_desc, (vop_t *) spec_mkdir },
- { &vop_mknod_desc, (vop_t *) spec_mknod },
- { &vop_mmap_desc, (vop_t *) spec_mmap },
- { &vop_open_desc, (vop_t *) spec_open },
- { &vop_pathconf_desc, (vop_t *) spec_pathconf },
- { &vop_poll_desc, (vop_t *) spec_poll },
- { &vop_print_desc, (vop_t *) ufs_print },
- { &vop_read_desc, (vop_t *) ufsspec_read },
- { &vop_readdir_desc, (vop_t *) spec_readdir },
- { &vop_readlink_desc, (vop_t *) spec_readlink },
- { &vop_reallocblks_desc, (vop_t *) spec_reallocblks },
- { &vop_reclaim_desc, (vop_t *) ufs_reclaim },
- { &vop_remove_desc, (vop_t *) spec_remove },
- { &vop_rename_desc, (vop_t *) spec_rename },
- { &vop_rmdir_desc, (vop_t *) spec_rmdir },
- { &vop_seek_desc, (vop_t *) spec_seek },
- { &vop_setattr_desc, (vop_t *) ufs_setattr },
- { &vop_strategy_desc, (vop_t *) spec_strategy },
- { &vop_symlink_desc, (vop_t *) spec_symlink },
- { &vop_truncate_desc, (vop_t *) spec_truncate },
- { &vop_unlock_desc, (vop_t *) ufs_unlock },
{ &vop_update_desc, (vop_t *) ext2_update },
- { &vop_valloc_desc, (vop_t *) spec_valloc },
{ &vop_vfree_desc, (vop_t *) ext2_vfree },
- { &vop_write_desc, (vop_t *) ufsspec_write },
{ NULL, NULL }
};
static struct vnodeopv_desc ext2fs_specop_opv_desc =
@@ -182,48 +115,11 @@ static struct vnodeopv_desc ext2fs_specop_opv_desc =
vop_t **ext2_fifoop_p;
static struct vnodeopv_entry_desc ext2_fifoop_entries[] = {
- { &vop_default_desc, (vop_t *) vn_default_error },
- { &vop_abortop_desc, (vop_t *) fifo_abortop },
- { &vop_access_desc, (vop_t *) ufs_access },
- { &vop_advlock_desc, (vop_t *) fifo_advlock },
- { &vop_blkatoff_desc, (vop_t *) fifo_blkatoff },
- { &vop_bmap_desc, (vop_t *) fifo_bmap },
- { &vop_bwrite_desc, (vop_t *) vn_bwrite },
- { &vop_close_desc, (vop_t *) ufsfifo_close },
- { &vop_create_desc, (vop_t *) fifo_create },
+ { &vop_default_desc, (vop_t *) ufs_vnoperatefifo },
{ &vop_fsync_desc, (vop_t *) ext2_fsync },
- { &vop_getattr_desc, (vop_t *) ufs_getattr },
{ &vop_inactive_desc, (vop_t *) ext2_inactive },
- { &vop_ioctl_desc, (vop_t *) fifo_ioctl },
- { &vop_islocked_desc, (vop_t *) ufs_islocked },
- { &vop_link_desc, (vop_t *) fifo_link },
- { &vop_lock_desc, (vop_t *) ufs_lock },
- { &vop_lookup_desc, (vop_t *) fifo_lookup },
- { &vop_mkdir_desc, (vop_t *) fifo_mkdir },
- { &vop_mknod_desc, (vop_t *) fifo_mknod },
- { &vop_mmap_desc, (vop_t *) fifo_mmap },
- { &vop_open_desc, (vop_t *) fifo_open },
- { &vop_pathconf_desc, (vop_t *) fifo_pathconf },
- { &vop_poll_desc, (vop_t *) fifo_poll },
- { &vop_print_desc, (vop_t *) ufs_print },
- { &vop_read_desc, (vop_t *) ufsfifo_read },
- { &vop_readdir_desc, (vop_t *) fifo_readdir },
- { &vop_readlink_desc, (vop_t *) fifo_readlink },
- { &vop_reallocblks_desc, (vop_t *) fifo_reallocblks },
- { &vop_reclaim_desc, (vop_t *) ufs_reclaim },
- { &vop_remove_desc, (vop_t *) fifo_remove },
- { &vop_rename_desc, (vop_t *) fifo_rename },
- { &vop_rmdir_desc, (vop_t *) fifo_rmdir },
- { &vop_seek_desc, (vop_t *) fifo_seek },
- { &vop_setattr_desc, (vop_t *) ufs_setattr },
- { &vop_strategy_desc, (vop_t *) fifo_strategy },
- { &vop_symlink_desc, (vop_t *) fifo_symlink },
- { &vop_truncate_desc, (vop_t *) fifo_truncate },
- { &vop_unlock_desc, (vop_t *) ufs_unlock },
{ &vop_update_desc, (vop_t *) ext2_update },
- { &vop_valloc_desc, (vop_t *) fifo_valloc },
{ &vop_vfree_desc, (vop_t *) ext2_vfree },
- { &vop_write_desc, (vop_t *) ufsfifo_write },
{ NULL, NULL }
};
static struct vnodeopv_desc ext2fs_fifoop_opv_desc =
diff --git a/sys/gnu/fs/ext2fs/ext2_vnops.c b/sys/gnu/fs/ext2fs/ext2_vnops.c
index ff82e6a..97225aa 100644
--- a/sys/gnu/fs/ext2fs/ext2_vnops.c
+++ b/sys/gnu/fs/ext2fs/ext2_vnops.c
@@ -83,45 +83,15 @@ static int ext2_write __P((struct vop_write_args *));
/* Global vfs data structures for ufs. */
vop_t **ext2_vnodeop_p;
static struct vnodeopv_entry_desc ext2_vnodeop_entries[] = {
- { &vop_default_desc, (vop_t *) vn_default_error },
- { &vop_abortop_desc, (vop_t *) ufs_abortop },
- { &vop_access_desc, (vop_t *) ufs_access },
- { &vop_advlock_desc, (vop_t *) ufs_advlock },
+ { &vop_default_desc, (vop_t *) ufs_vnoperate },
{ &vop_blkatoff_desc, (vop_t *) ext2_blkatoff },
- { &vop_bmap_desc, (vop_t *) ufs_bmap },
- { &vop_bwrite_desc, (vop_t *) vn_bwrite },
{ &vop_cachedlookup_desc, (vop_t *) ext2_lookup },
- { &vop_close_desc, (vop_t *) ufs_close },
- { &vop_create_desc, (vop_t *) ufs_create },
{ &vop_fsync_desc, (vop_t *) ext2_fsync },
- { &vop_getattr_desc, (vop_t *) ufs_getattr },
{ &vop_inactive_desc, (vop_t *) ext2_inactive },
- { &vop_ioctl_desc, (vop_t *) ufs_ioctl },
- { &vop_islocked_desc, (vop_t *) ufs_islocked },
- { &vop_link_desc, (vop_t *) ufs_link },
- { &vop_lock_desc, (vop_t *) ufs_lock },
- { &vop_lookup_desc, (vop_t *) vfs_cache_lookup },
- { &vop_mkdir_desc, (vop_t *) ufs_mkdir },
- { &vop_mknod_desc, (vop_t *) ufs_mknod },
- { &vop_mmap_desc, (vop_t *) ufs_mmap },
- { &vop_open_desc, (vop_t *) ufs_open },
- { &vop_pathconf_desc, (vop_t *) ufs_pathconf },
- { &vop_poll_desc, (vop_t *) ufs_poll },
- { &vop_print_desc, (vop_t *) ufs_print },
{ &vop_read_desc, (vop_t *) ext2_read },
{ &vop_readdir_desc, (vop_t *) ext2_readdir },
- { &vop_readlink_desc, (vop_t *) ufs_readlink },
{ &vop_reallocblks_desc, (vop_t *) ext2_reallocblks },
- { &vop_reclaim_desc, (vop_t *) ufs_reclaim },
- { &vop_remove_desc, (vop_t *) ufs_remove },
- { &vop_rename_desc, (vop_t *) ufs_rename },
- { &vop_rmdir_desc, (vop_t *) ufs_rmdir },
- { &vop_seek_desc, (vop_t *) ufs_seek },
- { &vop_setattr_desc, (vop_t *) ufs_setattr },
- { &vop_strategy_desc, (vop_t *) ufs_strategy },
- { &vop_symlink_desc, (vop_t *) ufs_symlink },
{ &vop_truncate_desc, (vop_t *) ext2_truncate },
- { &vop_unlock_desc, (vop_t *) ufs_unlock },
{ &vop_update_desc, (vop_t *) ext2_update },
{ &vop_valloc_desc, (vop_t *) ext2_valloc },
{ &vop_vfree_desc, (vop_t *) ext2_vfree },
@@ -133,48 +103,11 @@ static struct vnodeopv_desc ext2fs_vnodeop_opv_desc =
vop_t **ext2_specop_p;
static struct vnodeopv_entry_desc ext2_specop_entries[] = {
- { &vop_default_desc, (vop_t *) vn_default_error },
- { &vop_abortop_desc, (vop_t *) spec_abortop },
- { &vop_access_desc, (vop_t *) ufs_access },
- { &vop_advlock_desc, (vop_t *) spec_advlock },
- { &vop_blkatoff_desc, (vop_t *) spec_blkatoff },
- { &vop_bmap_desc, (vop_t *) spec_bmap },
- { &vop_bwrite_desc, (vop_t *) vn_bwrite },
- { &vop_close_desc, (vop_t *) ufsspec_close },
- { &vop_create_desc, (vop_t *) spec_create },
+ { &vop_default_desc, (vop_t *) ufs_vnoperatespec },
{ &vop_fsync_desc, (vop_t *) ext2_fsync },
- { &vop_getattr_desc, (vop_t *) ufs_getattr },
{ &vop_inactive_desc, (vop_t *) ext2_inactive },
- { &vop_ioctl_desc, (vop_t *) spec_ioctl },
- { &vop_islocked_desc, (vop_t *) ufs_islocked },
- { &vop_link_desc, (vop_t *) spec_link },
- { &vop_lock_desc, (vop_t *) ufs_lock },
- { &vop_lookup_desc, (vop_t *) spec_lookup },
- { &vop_mkdir_desc, (vop_t *) spec_mkdir },
- { &vop_mknod_desc, (vop_t *) spec_mknod },
- { &vop_mmap_desc, (vop_t *) spec_mmap },
- { &vop_open_desc, (vop_t *) spec_open },
- { &vop_pathconf_desc, (vop_t *) spec_pathconf },
- { &vop_poll_desc, (vop_t *) spec_poll },
- { &vop_print_desc, (vop_t *) ufs_print },
- { &vop_read_desc, (vop_t *) ufsspec_read },
- { &vop_readdir_desc, (vop_t *) spec_readdir },
- { &vop_readlink_desc, (vop_t *) spec_readlink },
- { &vop_reallocblks_desc, (vop_t *) spec_reallocblks },
- { &vop_reclaim_desc, (vop_t *) ufs_reclaim },
- { &vop_remove_desc, (vop_t *) spec_remove },
- { &vop_rename_desc, (vop_t *) spec_rename },
- { &vop_rmdir_desc, (vop_t *) spec_rmdir },
- { &vop_seek_desc, (vop_t *) spec_seek },
- { &vop_setattr_desc, (vop_t *) ufs_setattr },
- { &vop_strategy_desc, (vop_t *) spec_strategy },
- { &vop_symlink_desc, (vop_t *) spec_symlink },
- { &vop_truncate_desc, (vop_t *) spec_truncate },
- { &vop_unlock_desc, (vop_t *) ufs_unlock },
{ &vop_update_desc, (vop_t *) ext2_update },
- { &vop_valloc_desc, (vop_t *) spec_valloc },
{ &vop_vfree_desc, (vop_t *) ext2_vfree },
- { &vop_write_desc, (vop_t *) ufsspec_write },
{ NULL, NULL }
};
static struct vnodeopv_desc ext2fs_specop_opv_desc =
@@ -182,48 +115,11 @@ static struct vnodeopv_desc ext2fs_specop_opv_desc =
vop_t **ext2_fifoop_p;
static struct vnodeopv_entry_desc ext2_fifoop_entries[] = {
- { &vop_default_desc, (vop_t *) vn_default_error },
- { &vop_abortop_desc, (vop_t *) fifo_abortop },
- { &vop_access_desc, (vop_t *) ufs_access },
- { &vop_advlock_desc, (vop_t *) fifo_advlock },
- { &vop_blkatoff_desc, (vop_t *) fifo_blkatoff },
- { &vop_bmap_desc, (vop_t *) fifo_bmap },
- { &vop_bwrite_desc, (vop_t *) vn_bwrite },
- { &vop_close_desc, (vop_t *) ufsfifo_close },
- { &vop_create_desc, (vop_t *) fifo_create },
+ { &vop_default_desc, (vop_t *) ufs_vnoperatefifo },
{ &vop_fsync_desc, (vop_t *) ext2_fsync },
- { &vop_getattr_desc, (vop_t *) ufs_getattr },
{ &vop_inactive_desc, (vop_t *) ext2_inactive },
- { &vop_ioctl_desc, (vop_t *) fifo_ioctl },
- { &vop_islocked_desc, (vop_t *) ufs_islocked },
- { &vop_link_desc, (vop_t *) fifo_link },
- { &vop_lock_desc, (vop_t *) ufs_lock },
- { &vop_lookup_desc, (vop_t *) fifo_lookup },
- { &vop_mkdir_desc, (vop_t *) fifo_mkdir },
- { &vop_mknod_desc, (vop_t *) fifo_mknod },
- { &vop_mmap_desc, (vop_t *) fifo_mmap },
- { &vop_open_desc, (vop_t *) fifo_open },
- { &vop_pathconf_desc, (vop_t *) fifo_pathconf },
- { &vop_poll_desc, (vop_t *) fifo_poll },
- { &vop_print_desc, (vop_t *) ufs_print },
- { &vop_read_desc, (vop_t *) ufsfifo_read },
- { &vop_readdir_desc, (vop_t *) fifo_readdir },
- { &vop_readlink_desc, (vop_t *) fifo_readlink },
- { &vop_reallocblks_desc, (vop_t *) fifo_reallocblks },
- { &vop_reclaim_desc, (vop_t *) ufs_reclaim },
- { &vop_remove_desc, (vop_t *) fifo_remove },
- { &vop_rename_desc, (vop_t *) fifo_rename },
- { &vop_rmdir_desc, (vop_t *) fifo_rmdir },
- { &vop_seek_desc, (vop_t *) fifo_seek },
- { &vop_setattr_desc, (vop_t *) ufs_setattr },
- { &vop_strategy_desc, (vop_t *) fifo_strategy },
- { &vop_symlink_desc, (vop_t *) fifo_symlink },
- { &vop_truncate_desc, (vop_t *) fifo_truncate },
- { &vop_unlock_desc, (vop_t *) ufs_unlock },
{ &vop_update_desc, (vop_t *) ext2_update },
- { &vop_valloc_desc, (vop_t *) fifo_valloc },
{ &vop_vfree_desc, (vop_t *) ext2_vfree },
- { &vop_write_desc, (vop_t *) ufsfifo_write },
{ NULL, NULL }
};
static struct vnodeopv_desc ext2fs_fifoop_opv_desc =
diff --git a/sys/isofs/cd9660/cd9660_vnops.c b/sys/isofs/cd9660/cd9660_vnops.c
index 9ad618f..607d7d6 100644
--- a/sys/isofs/cd9660/cd9660_vnops.c
+++ b/sys/isofs/cd9660/cd9660_vnops.c
@@ -36,7 +36,7 @@
* SUCH DAMAGE.
*
* @(#)cd9660_vnops.c 8.19 (Berkeley) 5/27/95
- * $Id: cd9660_vnops.c,v 1.41 1997/10/15 09:20:47 phk Exp $
+ * $Id: cd9660_vnops.c,v 1.42 1997/10/15 10:03:58 phk Exp $
*/
#include <sys/param.h>
@@ -1050,49 +1050,18 @@ VNODEOP_SET(cd9660_vnodeop_opv_desc);
*/
vop_t **cd9660_specop_p;
struct vnodeopv_entry_desc cd9660_specop_entries[] = {
- { &vop_default_desc, (vop_t *) vn_default_error },
- { &vop_abortop_desc, (vop_t *) spec_abortop },
+ { &vop_default_desc, (vop_t *) spec_vnoperate },
{ &vop_access_desc, (vop_t *) cd9660_access },
- { &vop_advlock_desc, (vop_t *) spec_advlock },
- { &vop_blkatoff_desc, (vop_t *) spec_blkatoff },
- { &vop_bmap_desc, (vop_t *) spec_bmap },
{ &vop_bwrite_desc, (vop_t *) vn_bwrite },
- { &vop_close_desc, (vop_t *) spec_close },
- { &vop_create_desc, (vop_t *) spec_create },
- { &vop_fsync_desc, (vop_t *) spec_fsync },
{ &vop_getattr_desc, (vop_t *) cd9660_getattr },
{ &vop_inactive_desc, (vop_t *) cd9660_inactive },
- { &vop_ioctl_desc, (vop_t *) spec_ioctl },
{ &vop_islocked_desc, (vop_t *) cd9660_islocked },
- { &vop_lease_desc, (vop_t *) spec_lease_check },
- { &vop_link_desc, (vop_t *) spec_link },
{ &vop_lock_desc, (vop_t *) cd9660_lock },
- { &vop_lookup_desc, (vop_t *) spec_lookup },
- { &vop_mkdir_desc, (vop_t *) spec_mkdir },
- { &vop_mknod_desc, (vop_t *) spec_mknod },
- { &vop_mmap_desc, (vop_t *) spec_mmap },
- { &vop_open_desc, (vop_t *) spec_open },
- { &vop_pathconf_desc, (vop_t *) spec_pathconf },
- { &vop_poll_desc, (vop_t *) spec_poll },
{ &vop_print_desc, (vop_t *) cd9660_print },
- { &vop_read_desc, (vop_t *) spec_read },
- { &vop_readdir_desc, (vop_t *) spec_readdir },
- { &vop_readlink_desc, (vop_t *) spec_readlink },
{ &vop_reclaim_desc, (vop_t *) cd9660_reclaim },
- { &vop_remove_desc, (vop_t *) spec_remove },
- { &vop_rename_desc, (vop_t *) spec_rename },
- { &vop_revoke_desc, (vop_t *) spec_revoke },
- { &vop_rmdir_desc, (vop_t *) spec_rmdir },
- { &vop_seek_desc, (vop_t *) spec_seek },
{ &vop_setattr_desc, (vop_t *) cd9660_setattr },
- { &vop_strategy_desc, (vop_t *) spec_strategy },
- { &vop_symlink_desc, (vop_t *) spec_symlink },
- { &vop_truncate_desc, (vop_t *) spec_truncate },
{ &vop_unlock_desc, (vop_t *) cd9660_unlock },
{ &vop_update_desc, (vop_t *) cd9660_update },
- { &vop_valloc_desc, (vop_t *) spec_valloc },
- { &vop_vfree_desc, (vop_t *) spec_vfree },
- { &vop_write_desc, (vop_t *) spec_write },
{ NULL, NULL }
};
static struct vnodeopv_desc cd9660_specop_opv_desc =
@@ -1101,49 +1070,18 @@ VNODEOP_SET(cd9660_specop_opv_desc);
vop_t **cd9660_fifoop_p;
struct vnodeopv_entry_desc cd9660_fifoop_entries[] = {
- { &vop_default_desc, (vop_t *) vn_default_error },
- { &vop_abortop_desc, (vop_t *) fifo_abortop },
+ { &vop_default_desc, (vop_t *) fifo_vnoperate },
{ &vop_access_desc, (vop_t *) cd9660_access },
- { &vop_advlock_desc, (vop_t *) fifo_advlock },
- { &vop_blkatoff_desc, (vop_t *) fifo_blkatoff },
- { &vop_bmap_desc, (vop_t *) fifo_bmap },
{ &vop_bwrite_desc, (vop_t *) vn_bwrite },
- { &vop_close_desc, (vop_t *) fifo_close },
- { &vop_create_desc, (vop_t *) fifo_create },
- { &vop_fsync_desc, (vop_t *) fifo_fsync },
{ &vop_getattr_desc, (vop_t *) cd9660_getattr },
{ &vop_inactive_desc, (vop_t *) cd9660_inactive },
- { &vop_ioctl_desc, (vop_t *) fifo_ioctl },
{ &vop_islocked_desc, (vop_t *) cd9660_islocked },
- { &vop_lease_desc, (vop_t *) fifo_lease_check },
- { &vop_link_desc, (vop_t *) fifo_link },
{ &vop_lock_desc, (vop_t *) cd9660_lock },
- { &vop_lookup_desc, (vop_t *) fifo_lookup },
- { &vop_mkdir_desc, (vop_t *) fifo_mkdir },
- { &vop_mknod_desc, (vop_t *) fifo_mknod },
- { &vop_mmap_desc, (vop_t *) fifo_mmap },
- { &vop_open_desc, (vop_t *) fifo_open },
- { &vop_pathconf_desc, (vop_t *) fifo_pathconf },
- { &vop_poll_desc, (vop_t *) fifo_poll },
{ &vop_print_desc, (vop_t *) cd9660_print },
- { &vop_read_desc, (vop_t *) fifo_read },
- { &vop_readdir_desc, (vop_t *) fifo_readdir },
- { &vop_readlink_desc, (vop_t *) fifo_readlink },
{ &vop_reclaim_desc, (vop_t *) cd9660_reclaim },
- { &vop_remove_desc, (vop_t *) fifo_remove },
- { &vop_rename_desc, (vop_t *) fifo_rename },
- { &vop_revoke_desc, (vop_t *) fifo_revoke },
- { &vop_rmdir_desc, (vop_t *) fifo_rmdir },
- { &vop_seek_desc, (vop_t *) fifo_seek },
{ &vop_setattr_desc, (vop_t *) cd9660_setattr },
- { &vop_strategy_desc, (vop_t *) fifo_strategy },
- { &vop_symlink_desc, (vop_t *) fifo_symlink },
- { &vop_truncate_desc, (vop_t *) fifo_truncate },
{ &vop_unlock_desc, (vop_t *) cd9660_unlock },
{ &vop_update_desc, (vop_t *) cd9660_update },
- { &vop_valloc_desc, (vop_t *) fifo_valloc },
- { &vop_vfree_desc, (vop_t *) fifo_vfree },
- { &vop_write_desc, (vop_t *) fifo_write },
{ NULL, NULL }
};
static struct vnodeopv_desc cd9660_fifoop_opv_desc =
diff --git a/sys/kern/vfs_cache.c b/sys/kern/vfs_cache.c
index 71db0b0..49cd2f3 100644
--- a/sys/kern/vfs_cache.c
+++ b/sys/kern/vfs_cache.c
@@ -34,7 +34,7 @@
* SUCH DAMAGE.
*
* @(#)vfs_cache.c 8.5 (Berkeley) 3/22/95
- * $Id: vfs_cache.c,v 1.32 1997/09/24 07:46:52 phk Exp $
+ * $Id: vfs_cache.c,v 1.33 1997/09/24 15:54:10 phk Exp $
*/
#include <sys/param.h>
@@ -415,8 +415,7 @@ vfs_cache_lookup(ap)
error = cache_lookup(vdp, vpp, cnp);
if (!error)
- return (VCALL(vdp, VOFFSET(vop_cachedlookup),
- (struct vop_cachedlookup_args *)ap));
+ return (VOP_CACHEDLOOKUP(ap->a_dvp, ap->a_vpp, ap->a_cnp));
if (error == ENOENT)
return (error);
diff --git a/sys/miscfs/devfs/devfs_vnops.c b/sys/miscfs/devfs/devfs_vnops.c
index 6ca4e19..a97b5a9 100644
--- a/sys/miscfs/devfs/devfs_vnops.c
+++ b/sys/miscfs/devfs/devfs_vnops.c
@@ -1,7 +1,7 @@
/*
* Written by Julian Elischer (julian@DIALix.oz.au)
*
- * $Header: /home/ncvs/src/sys/miscfs/devfs/devfs_vnops.c,v 1.41 1997/10/15 09:20:53 phk Exp $
+ * $Header: /home/ncvs/src/sys/miscfs/devfs/devfs_vnops.c,v 1.42 1997/10/15 10:04:08 phk Exp $
*
* symlinks can wait 'til later.
*/
@@ -682,7 +682,7 @@ DBPRINT(("read\n"));
NULL,NULL,NULL);
case VCHR:
case VBLK:
- error = spec_read(ap);
+ error = VOCALL(spec_vnodeop_p, VOFFSET(vop_read), ap);
TIMEVAL_TO_TIMESPEC(&time,&(file_node->atime))
return(error);
@@ -722,7 +722,7 @@ DBPRINT(("write\n"));
return(EISDIR);
case VCHR:
case VBLK:
- error = spec_write(ap);
+ error = VOCALL(spec_vnodeop_p, VOFFSET(vop_write), ap);
TIMEVAL_TO_TIMESPEC(&time,&(file_node->mtime))
return(error);
@@ -1779,47 +1779,14 @@ VNODEOP_SET(devfs_vnodeop_opv_desc);
vop_t **dev_spec_vnodeop_p;
static struct vnodeopv_entry_desc dev_spec_vnodeop_entries[] = {
- { &vop_default_desc, (vop_t *) vn_default_error },
- { &vop_abortop_desc, (vop_t *) spec_abortop },
+ { &vop_default_desc, (vop_t *) spec_vnoperate },
{ &vop_access_desc, (vop_t *) devfs_access },
- { &vop_advlock_desc, (vop_t *) spec_advlock },
- { &vop_blkatoff_desc, (vop_t *) spec_blkatoff },
- { &vop_bmap_desc, (vop_t *) spec_bmap },
{ &vop_bwrite_desc, (vop_t *) vn_bwrite },
- { &vop_close_desc, (vop_t *) spec_close },
- { &vop_create_desc, (vop_t *) spec_create },
- { &vop_fsync_desc, (vop_t *) spec_fsync },
{ &vop_getattr_desc, (vop_t *) devfs_getattr },
- { &vop_getpages_desc, (vop_t *) spec_getpages },
- { &vop_inactive_desc, (vop_t *) spec_inactive },
- { &vop_ioctl_desc, (vop_t *) spec_ioctl },
- { &vop_islocked_desc, (vop_t *) spec_islocked },
- { &vop_link_desc, (vop_t *) spec_link },
- { &vop_lock_desc, (vop_t *) spec_lock },
- { &vop_lookup_desc, (vop_t *) spec_lookup },
- { &vop_mkdir_desc, (vop_t *) spec_mkdir },
- { &vop_mknod_desc, (vop_t *) spec_mknod },
- { &vop_mmap_desc, (vop_t *) spec_mmap },
- { &vop_open_desc, (vop_t *) spec_open },
- { &vop_pathconf_desc, (vop_t *) spec_pathconf },
- { &vop_poll_desc, (vop_t *) spec_poll },
- { &vop_print_desc, (vop_t *) spec_print },
{ &vop_read_desc, (vop_t *) devfs_read },
- { &vop_readdir_desc, (vop_t *) spec_readdir },
- { &vop_readlink_desc, (vop_t *) spec_readlink },
{ &vop_reclaim_desc, (vop_t *) devfs_reclaim },
- { &vop_remove_desc, (vop_t *) spec_remove },
- { &vop_rename_desc, (vop_t *) spec_rename },
- { &vop_rmdir_desc, (vop_t *) spec_rmdir },
- { &vop_seek_desc, (vop_t *) spec_seek },
{ &vop_setattr_desc, (vop_t *) devfs_setattr },
- { &vop_strategy_desc, (vop_t *) spec_strategy },
{ &vop_symlink_desc, (vop_t *) devfs_symlink },
- { &vop_truncate_desc, (vop_t *) spec_truncate },
- { &vop_unlock_desc, (vop_t *) spec_unlock },
- { &vop_update_desc, (vop_t *) spec_update },
- { &vop_valloc_desc, (vop_t *) spec_valloc },
- { &vop_vfree_desc, (vop_t *) spec_vfree },
{ &vop_write_desc, (vop_t *) devfs_write },
{ NULL, NULL }
};
diff --git a/sys/miscfs/fifofs/fifo.h b/sys/miscfs/fifofs/fifo.h
index 38314de..ec186d0d 100644
--- a/sys/miscfs/fifofs/fifo.h
+++ b/sys/miscfs/fifofs/fifo.h
@@ -31,7 +31,7 @@
* SUCH DAMAGE.
*
* @(#)fifo.h 8.6 (Berkeley) 5/21/95
- * $Id: fifo.h,v 1.13 1997/02/22 09:40:17 peter Exp $
+ * $Id: fifo.h,v 1.14 1997/09/14 02:57:51 peter Exp $
*/
extern vop_t **fifo_vnodeop_p;
@@ -39,48 +39,6 @@ extern vop_t **fifo_vnodeop_p;
/*
* Prototypes for fifo operations on vnodes.
*/
-int fifo_badop __P((void));
+int fifo_vnoperate __P((struct vop_generic_args *));
int fifo_printinfo __P((struct vnode *));
-int fifo_lookup __P((struct vop_lookup_args *));
-#define fifo_create ((int (*) __P((struct vop_create_args *)))fifo_badop)
-#define fifo_mknod ((int (*) __P((struct vop_mknod_args *)))fifo_badop)
-int fifo_open __P((struct vop_open_args *));
-int fifo_close __P((struct vop_close_args *));
-#define fifo_access ((int (*) __P((struct vop_access_args *)))fifo_ebadf)
-#define fifo_getattr ((int (*) __P((struct vop_getattr_args *)))fifo_ebadf)
-#define fifo_setattr ((int (*) __P((struct vop_setattr_args *)))fifo_ebadf)
-int fifo_read __P((struct vop_read_args *));
-int fifo_write __P((struct vop_write_args *));
-#define fifo_lease_check ((int (*) __P((struct vop_lease_args *)))nullop)
-int fifo_ioctl __P((struct vop_ioctl_args *));
-int fifo_poll __P((struct vop_poll_args *));
-#define fifo_revoke vop_revoke
-#define fifo_mmap ((int (*) __P((struct vop_mmap_args *)))fifo_badop)
-#define fifo_fsync ((int (*) __P((struct vop_fsync_args *)))nullop)
-#define fifo_seek ((int (*) __P((struct vop_seek_args *)))fifo_badop)
-#define fifo_remove ((int (*) __P((struct vop_remove_args *)))fifo_badop)
-#define fifo_link ((int (*) __P((struct vop_link_args *)))fifo_badop)
-#define fifo_rename ((int (*) __P((struct vop_rename_args *)))fifo_badop)
-#define fifo_mkdir ((int (*) __P((struct vop_mkdir_args *)))fifo_badop)
-#define fifo_rmdir ((int (*) __P((struct vop_rmdir_args *)))fifo_badop)
-#define fifo_symlink ((int (*) __P((struct vop_symlink_args *)))fifo_badop)
-#define fifo_readdir ((int (*) __P((struct vop_readdir_args *)))fifo_badop)
-#define fifo_readlink ((int (*) __P((struct vop_readlink_args *)))fifo_badop)
-#define fifo_abortop ((int (*) __P((struct vop_abortop_args *)))fifo_badop)
-int fifo_inactive __P((struct vop_inactive_args *));
-#define fifo_reclaim ((int (*) __P((struct vop_reclaim_args *)))nullop)
-#define fifo_lock ((int (*) __P((struct vop_lock_args *)))vop_nolock)
-#define fifo_unlock ((int (*) __P((struct vop_unlock_args *)))vop_nounlock)
-int fifo_bmap __P((struct vop_bmap_args *));
-#define fifo_strategy ((int (*) __P((struct vop_strategy_args *)))fifo_badop)
-#define fifo_islocked ((int(*) __P((struct vop_islocked_args *)))vop_noislocked)
-int fifo_pathconf __P((struct vop_pathconf_args *));
-int fifo_advlock __P((struct vop_advlock_args *));
-#define fifo_blkatoff ((int (*) __P((struct vop_blkatoff_args *)))fifo_badop)
-#define fifo_valloc ((int (*) __P((struct vop_valloc_args *)))fifo_badop)
-#define fifo_reallocblks \
- ((int (*) __P((struct vop_reallocblks_args *)))fifo_badop)
-#define fifo_vfree ((int (*) __P((struct vop_vfree_args *)))fifo_badop)
-#define fifo_truncate ((int (*) __P((struct vop_truncate_args *)))nullop)
-#define fifo_update ((int (*) __P((struct vop_update_args *)))nullop)
-#define fifo_bwrite ((int (*) __P((struct vop_bwrite_args *)))nullop)
+
diff --git a/sys/miscfs/fifofs/fifo_vnops.c b/sys/miscfs/fifofs/fifo_vnops.c
index e8eb873..7bddac3 100644
--- a/sys/miscfs/fifofs/fifo_vnops.c
+++ b/sys/miscfs/fifofs/fifo_vnops.c
@@ -31,7 +31,7 @@
* SUCH DAMAGE.
*
* @(#)fifo_vnops.c 8.10 (Berkeley) 5/27/95
- * $Id: fifo_vnops.c,v 1.29 1997/10/15 09:21:00 phk Exp $
+ * $Id: fifo_vnops.c,v 1.30 1997/10/15 10:04:18 phk Exp $
*/
#include <sys/param.h>
@@ -61,52 +61,66 @@ struct fifoinfo {
};
static int fifo_ebadf __P((void));
+static int fifo_badop __P((void));
static int fifo_print __P((struct vop_print_args *));
+static int fifo_lookup __P((struct vop_lookup_args *));
+static int fifo_open __P((struct vop_open_args *));
+static int fifo_close __P((struct vop_close_args *));
+static int fifo_read __P((struct vop_read_args *));
+static int fifo_write __P((struct vop_write_args *));
+static int fifo_ioctl __P((struct vop_ioctl_args *));
+static int fifo_poll __P((struct vop_poll_args *));
+static int fifo_inactive __P((struct vop_inactive_args *));
+static int fifo_bmap __P((struct vop_bmap_args *));
+static int fifo_pathconf __P((struct vop_pathconf_args *));
+static int fifo_advlock __P((struct vop_advlock_args *));
+
vop_t **fifo_vnodeop_p;
static struct vnodeopv_entry_desc fifo_vnodeop_entries[] = {
{ &vop_default_desc, (vop_t *) vn_default_error },
- { &vop_abortop_desc, (vop_t *) fifo_abortop },
- { &vop_access_desc, (vop_t *) fifo_access },
+ { &vop_abortop_desc, (vop_t *) fifo_badop },
+ { &vop_access_desc, (vop_t *) fifo_ebadf },
{ &vop_advlock_desc, (vop_t *) fifo_advlock },
- { &vop_blkatoff_desc, (vop_t *) fifo_blkatoff },
+ { &vop_blkatoff_desc, (vop_t *) fifo_badop },
{ &vop_bmap_desc, (vop_t *) fifo_bmap },
- { &vop_bwrite_desc, (vop_t *) fifo_bwrite },
+ { &vop_bwrite_desc, (vop_t *) nullop },
{ &vop_close_desc, (vop_t *) fifo_close },
- { &vop_create_desc, (vop_t *) fifo_create },
- { &vop_fsync_desc, (vop_t *) fifo_fsync },
- { &vop_getattr_desc, (vop_t *) fifo_getattr },
+ { &vop_create_desc, (vop_t *) fifo_badop },
+ { &vop_fsync_desc, (vop_t *) nullop },
+ { &vop_getattr_desc, (vop_t *) fifo_ebadf },
{ &vop_inactive_desc, (vop_t *) fifo_inactive },
{ &vop_ioctl_desc, (vop_t *) fifo_ioctl },
- { &vop_islocked_desc, (vop_t *) fifo_islocked },
- { &vop_lease_desc, (vop_t *) fifo_lease_check },
- { &vop_link_desc, (vop_t *) fifo_link },
- { &vop_lock_desc, (vop_t *) fifo_lock },
+ { &vop_islocked_desc, (vop_t *) vop_noislocked },
+ { &vop_lease_desc, (vop_t *) nullop },
+ { &vop_link_desc, (vop_t *) fifo_badop },
+ { &vop_lock_desc, (vop_t *) vop_nolock },
{ &vop_lookup_desc, (vop_t *) fifo_lookup },
- { &vop_mkdir_desc, (vop_t *) fifo_mkdir },
- { &vop_mknod_desc, (vop_t *) fifo_mknod },
- { &vop_mmap_desc, (vop_t *) fifo_mmap },
+ { &vop_mkdir_desc, (vop_t *) fifo_badop },
+ { &vop_mknod_desc, (vop_t *) fifo_badop },
+ { &vop_mmap_desc, (vop_t *) fifo_badop },
{ &vop_open_desc, (vop_t *) fifo_open },
{ &vop_pathconf_desc, (vop_t *) fifo_pathconf },
{ &vop_poll_desc, (vop_t *) fifo_poll },
{ &vop_print_desc, (vop_t *) fifo_print },
{ &vop_read_desc, (vop_t *) fifo_read },
- { &vop_readdir_desc, (vop_t *) fifo_readdir },
- { &vop_readlink_desc, (vop_t *) fifo_readlink },
- { &vop_reclaim_desc, (vop_t *) fifo_reclaim },
- { &vop_remove_desc, (vop_t *) fifo_remove },
- { &vop_rename_desc, (vop_t *) fifo_rename },
- { &vop_revoke_desc, (vop_t *) fifo_revoke },
- { &vop_rmdir_desc, (vop_t *) fifo_rmdir },
- { &vop_seek_desc, (vop_t *) fifo_seek },
- { &vop_setattr_desc, (vop_t *) fifo_setattr },
- { &vop_strategy_desc, (vop_t *) fifo_strategy },
- { &vop_symlink_desc, (vop_t *) fifo_symlink },
- { &vop_truncate_desc, (vop_t *) fifo_truncate },
- { &vop_unlock_desc, (vop_t *) fifo_unlock },
- { &vop_update_desc, (vop_t *) fifo_update },
- { &vop_valloc_desc, (vop_t *) fifo_valloc },
- { &vop_vfree_desc, (vop_t *) fifo_vfree },
+ { &vop_readdir_desc, (vop_t *) fifo_badop },
+ { &vop_readlink_desc, (vop_t *) fifo_badop },
+ { &vop_reallocblks_desc, (vop_t *) fifo_badop },
+ { &vop_reclaim_desc, (vop_t *) nullop },
+ { &vop_remove_desc, (vop_t *) fifo_badop },
+ { &vop_rename_desc, (vop_t *) fifo_badop },
+ { &vop_revoke_desc, (vop_t *) vop_revoke },
+ { &vop_rmdir_desc, (vop_t *) fifo_badop },
+ { &vop_seek_desc, (vop_t *) fifo_badop },
+ { &vop_setattr_desc, (vop_t *) fifo_ebadf },
+ { &vop_strategy_desc, (vop_t *) fifo_badop },
+ { &vop_symlink_desc, (vop_t *) fifo_badop },
+ { &vop_truncate_desc, (vop_t *) fifo_badop },
+ { &vop_unlock_desc, (vop_t *) vop_nounlock },
+ { &vop_update_desc, (vop_t *) nullop },
+ { &vop_valloc_desc, (vop_t *) fifo_badop },
+ { &vop_vfree_desc, (vop_t *) fifo_badop },
{ &vop_write_desc, (vop_t *) fifo_write },
{ NULL, NULL }
};
@@ -115,11 +129,21 @@ static struct vnodeopv_desc fifo_vnodeop_opv_desc =
VNODEOP_SET(fifo_vnodeop_opv_desc);
+int
+fifo_vnoperate(ap)
+ struct vop_generic_args /* {
+ struct vnodeop_desc *a_desc;
+ <other random data follows, presumably>
+ } */ *ap;
+{
+ return (VOCALL(fifo_vnodeop_p, ap->a_desc->vdesc_offset, ap));
+}
+
/*
* Trivial lookup routine that always fails.
*/
/* ARGSUSED */
-int
+static int
fifo_lookup(ap)
struct vop_lookup_args /* {
struct vnode * a_dvp;
@@ -137,7 +161,7 @@ fifo_lookup(ap)
* to find an active instance of a fifo.
*/
/* ARGSUSED */
-int
+static int
fifo_open(ap)
struct vop_open_args /* {
struct vnode *a_vp;
@@ -236,7 +260,7 @@ bad:
* Vnode op for read
*/
/* ARGSUSED */
-int
+static int
fifo_read(ap)
struct vop_read_args /* {
struct vnode *a_vp;
@@ -277,7 +301,7 @@ fifo_read(ap)
* Vnode op for write
*/
/* ARGSUSED */
-int
+static int
fifo_write(ap)
struct vop_write_args /* {
struct vnode *a_vp;
@@ -309,7 +333,7 @@ fifo_write(ap)
* Device ioctl operation.
*/
/* ARGSUSED */
-int
+static int
fifo_ioctl(ap)
struct vop_ioctl_args /* {
struct vnode *a_vp;
@@ -341,7 +365,7 @@ fifo_ioctl(ap)
}
/* ARGSUSED */
-int
+static int
fifo_poll(ap)
struct vop_poll_args /* {
struct vnode *a_vp;
@@ -368,7 +392,7 @@ fifo_poll(ap)
return (revents);
}
-int
+static int
fifo_inactive(ap)
struct vop_inactive_args /* {
struct vnode *a_vp;
@@ -383,7 +407,7 @@ fifo_inactive(ap)
/*
* This is a noop, simply returning what one has been given.
*/
-int
+static int
fifo_bmap(ap)
struct vop_bmap_args /* {
struct vnode *a_vp;
@@ -410,7 +434,7 @@ fifo_bmap(ap)
* Device close routine
*/
/* ARGSUSED */
-int
+static int
fifo_close(ap)
struct vop_close_args /* {
struct vnode *a_vp;
@@ -478,7 +502,7 @@ fifo_print(ap)
/*
* Return POSIX pathconf information applicable to fifo's.
*/
-int
+static int
fifo_pathconf(ap)
struct vop_pathconf_args /* {
struct vnode *a_vp;
@@ -517,7 +541,7 @@ fifo_ebadf()
* Fifo advisory byte-level locks.
*/
/* ARGSUSED */
-int
+static int
fifo_advlock(ap)
struct vop_advlock_args /* {
struct vnode *a_vp;
@@ -534,7 +558,7 @@ fifo_advlock(ap)
/*
* Fifo bad operation
*/
-int
+static int
fifo_badop()
{
diff --git a/sys/miscfs/specfs/spec_vnops.c b/sys/miscfs/specfs/spec_vnops.c
index cb300d6..73361c2 100644
--- a/sys/miscfs/specfs/spec_vnops.c
+++ b/sys/miscfs/specfs/spec_vnops.c
@@ -31,7 +31,7 @@
* SUCH DAMAGE.
*
* @(#)spec_vnops.c 8.14 (Berkeley) 5/21/95
- * $Id: spec_vnops.c,v 1.44 1997/10/15 09:21:22 phk Exp $
+ * $Id: spec_vnops.c,v 1.45 1997/10/15 10:04:43 phk Exp $
*/
#include <sys/param.h>
@@ -60,53 +60,70 @@
static int spec_ebadf __P((void));
static int spec_getattr __P((struct vop_getattr_args *));
+static int spec_badop __P((void));
+static int spec_strategy __P((struct vop_strategy_args *));
+static int spec_print __P((struct vop_print_args *));
+static int spec_lookup __P((struct vop_lookup_args *));
+static int spec_open __P((struct vop_open_args *));
+static int spec_close __P((struct vop_close_args *));
+static int spec_read __P((struct vop_read_args *));
+static int spec_write __P((struct vop_write_args *));
+static int spec_ioctl __P((struct vop_ioctl_args *));
+static int spec_poll __P((struct vop_poll_args *));
+static int spec_inactive __P((struct vop_inactive_args *));
+static int spec_fsync __P((struct vop_fsync_args *));
+static int spec_bmap __P((struct vop_bmap_args *));
+static int spec_pathconf __P((struct vop_pathconf_args *));
+static int spec_advlock __P((struct vop_advlock_args *));
+static int spec_getpages __P((struct vop_getpages_args *));
struct vnode *speclisth[SPECHSZ];
vop_t **spec_vnodeop_p;
static struct vnodeopv_entry_desc spec_vnodeop_entries[] = {
{ &vop_default_desc, (vop_t *) vn_default_error },
- { &vop_abortop_desc, (vop_t *) spec_abortop },
- { &vop_access_desc, (vop_t *) spec_access },
+ { &vop_abortop_desc, (vop_t *) spec_badop },
+ { &vop_access_desc, (vop_t *) spec_ebadf },
{ &vop_advlock_desc, (vop_t *) spec_advlock },
- { &vop_blkatoff_desc, (vop_t *) spec_blkatoff },
+ { &vop_blkatoff_desc, (vop_t *) spec_badop },
{ &vop_bmap_desc, (vop_t *) spec_bmap },
- { &vop_bwrite_desc, (vop_t *) vn_bwrite },
+ { &vop_bwrite_desc, (vop_t *) nullop },
{ &vop_close_desc, (vop_t *) spec_close },
- { &vop_create_desc, (vop_t *) spec_create },
+ { &vop_create_desc, (vop_t *) spec_badop },
{ &vop_fsync_desc, (vop_t *) spec_fsync },
{ &vop_getattr_desc, (vop_t *) spec_getattr },
{ &vop_getpages_desc, (vop_t *) spec_getpages },
{ &vop_inactive_desc, (vop_t *) spec_inactive },
{ &vop_ioctl_desc, (vop_t *) spec_ioctl },
- { &vop_islocked_desc, (vop_t *) spec_islocked },
- { &vop_lease_desc, (vop_t *) spec_lease_check },
- { &vop_link_desc, (vop_t *) spec_link },
- { &vop_lock_desc, (vop_t *) spec_lock },
+ { &vop_islocked_desc, (vop_t *) vop_noislocked },
+ { &vop_lease_desc, (vop_t *) nullop },
+ { &vop_link_desc, (vop_t *) spec_badop },
+ { &vop_lock_desc, (vop_t *) vop_nolock },
{ &vop_lookup_desc, (vop_t *) spec_lookup },
- { &vop_mkdir_desc, (vop_t *) spec_mkdir },
- { &vop_mknod_desc, (vop_t *) spec_mknod },
- { &vop_mmap_desc, (vop_t *) spec_mmap },
+ { &vop_mkdir_desc, (vop_t *) spec_badop },
+ { &vop_mknod_desc, (vop_t *) spec_badop },
+ { &vop_mmap_desc, (vop_t *) spec_badop },
{ &vop_open_desc, (vop_t *) spec_open },
{ &vop_pathconf_desc, (vop_t *) spec_pathconf },
{ &vop_poll_desc, (vop_t *) spec_poll },
{ &vop_print_desc, (vop_t *) spec_print },
{ &vop_read_desc, (vop_t *) spec_read },
- { &vop_readdir_desc, (vop_t *) spec_readdir },
- { &vop_readlink_desc, (vop_t *) spec_readlink },
- { &vop_reclaim_desc, (vop_t *) spec_reclaim },
- { &vop_remove_desc, (vop_t *) spec_remove },
- { &vop_rename_desc, (vop_t *) spec_rename },
- { &vop_revoke_desc, (vop_t *) spec_revoke },
- { &vop_rmdir_desc, (vop_t *) spec_rmdir },
- { &vop_seek_desc, (vop_t *) spec_seek },
- { &vop_setattr_desc, (vop_t *) spec_setattr },
+ { &vop_readdir_desc, (vop_t *) spec_badop },
+ { &vop_readlink_desc, (vop_t *) spec_badop },
+ { &vop_reallocblks_desc, (vop_t *) spec_badop },
+ { &vop_reclaim_desc, (vop_t *) nullop },
+ { &vop_remove_desc, (vop_t *) spec_badop },
+ { &vop_rename_desc, (vop_t *) spec_badop },
+ { &vop_revoke_desc, (vop_t *) vop_revoke },
+ { &vop_rmdir_desc, (vop_t *) spec_badop },
+ { &vop_seek_desc, (vop_t *) spec_badop },
+ { &vop_setattr_desc, (vop_t *) spec_ebadf },
{ &vop_strategy_desc, (vop_t *) spec_strategy },
- { &vop_symlink_desc, (vop_t *) spec_symlink },
- { &vop_truncate_desc, (vop_t *) spec_truncate },
- { &vop_unlock_desc, (vop_t *) spec_unlock },
- { &vop_update_desc, (vop_t *) spec_update },
- { &vop_valloc_desc, (vop_t *) spec_valloc },
- { &vop_vfree_desc, (vop_t *) spec_vfree },
+ { &vop_symlink_desc, (vop_t *) spec_badop },
+ { &vop_truncate_desc, (vop_t *) nullop },
+ { &vop_unlock_desc, (vop_t *) vop_nounlock },
+ { &vop_update_desc, (vop_t *) nullop },
+ { &vop_valloc_desc, (vop_t *) spec_badop },
+ { &vop_vfree_desc, (vop_t *) spec_badop },
{ &vop_write_desc, (vop_t *) spec_write },
{ NULL, NULL }
};
@@ -115,12 +132,23 @@ static struct vnodeopv_desc spec_vnodeop_opv_desc =
VNODEOP_SET(spec_vnodeop_opv_desc);
+
+int
+spec_vnoperate(ap)
+ struct vop_generic_args /* {
+ struct vnodeop_desc *a_desc;
+ <other random data follows, presumably>
+ } */ *ap;
+{
+ return (VOCALL(spec_vnodeop_p, ap->a_desc->vdesc_offset, ap));
+}
+
static void spec_getpages_iodone __P((struct buf *bp));
/*
* Trivial lookup routine that always fails.
*/
-int
+static int
spec_lookup(ap)
struct vop_lookup_args /* {
struct vnode *a_dvp;
@@ -137,7 +165,7 @@ spec_lookup(ap)
* Open a special file.
*/
/* ARGSUSED */
-int
+static int
spec_open(ap)
struct vop_open_args /* {
struct vnode *a_vp;
@@ -236,7 +264,7 @@ spec_open(ap)
* Vnode op for read
*/
/* ARGSUSED */
-int
+static int
spec_read(ap)
struct vop_read_args /* {
struct vnode *a_vp;
@@ -318,7 +346,7 @@ spec_read(ap)
* Vnode op for write
*/
/* ARGSUSED */
-int
+static int
spec_write(ap)
struct vop_write_args /* {
struct vnode *a_vp;
@@ -399,7 +427,7 @@ spec_write(ap)
* Device ioctl operation.
*/
/* ARGSUSED */
-int
+static int
spec_ioctl(ap)
struct vop_ioctl_args /* {
struct vnode *a_vp;
@@ -435,7 +463,7 @@ spec_ioctl(ap)
}
/* ARGSUSED */
-int
+static int
spec_poll(ap)
struct vop_poll_args /* {
struct vnode *a_vp;
@@ -460,7 +488,7 @@ spec_poll(ap)
* Synch buffers associated with a block device
*/
/* ARGSUSED */
-int
+static int
spec_fsync(ap)
struct vop_fsync_args /* {
struct vnode *a_vp;
@@ -510,7 +538,7 @@ loop:
return (0);
}
-int
+static int
spec_inactive(ap)
struct vop_inactive_args /* {
struct vnode *a_vp;
@@ -525,7 +553,7 @@ spec_inactive(ap)
/*
* Just call the device strategy routine
*/
-int
+static int
spec_strategy(ap)
struct vop_strategy_args /* {
struct buf *a_bp;
@@ -539,7 +567,7 @@ spec_strategy(ap)
/*
* This is a noop, simply returning what one has been given.
*/
-int
+static int
spec_bmap(ap)
struct vop_bmap_args /* {
struct vnode *a_vp;
@@ -566,7 +594,7 @@ spec_bmap(ap)
* Device close routine
*/
/* ARGSUSED */
-int
+static int
spec_close(ap)
struct vop_close_args /* {
struct vnode *a_vp;
@@ -652,7 +680,7 @@ spec_close(ap)
/*
* Print out the contents of a special device vnode.
*/
-int
+static int
spec_print(ap)
struct vop_print_args /* {
struct vnode *a_vp;
@@ -667,7 +695,7 @@ spec_print(ap)
/*
* Return POSIX pathconf information applicable to special devices.
*/
-int
+static int
spec_pathconf(ap)
struct vop_pathconf_args /* {
struct vnode *a_vp;
@@ -705,7 +733,7 @@ spec_pathconf(ap)
* Special device advisory byte-level locks.
*/
/* ARGSUSED */
-int
+static int
spec_advlock(ap)
struct vop_advlock_args /* {
struct vnode *a_vp;
@@ -732,7 +760,7 @@ spec_ebadf()
/*
* Special device bad operation
*/
-int
+static int
spec_badop()
{
@@ -749,7 +777,7 @@ spec_getpages_iodone(bp)
wakeup(bp);
}
-int
+static int
spec_getpages(ap)
struct vop_getpages_args *ap;
{
diff --git a/sys/miscfs/specfs/specdev.h b/sys/miscfs/specfs/specdev.h
index fe046ce..06a5cdd 100644
--- a/sys/miscfs/specfs/specdev.h
+++ b/sys/miscfs/specfs/specdev.h
@@ -31,7 +31,7 @@
* SUCH DAMAGE.
*
* @(#)specdev.h 8.6 (Berkeley) 5/21/95
- * $Id: specdev.h,v 1.11 1997/02/22 09:40:35 peter Exp $
+ * $Id: specdev.h,v 1.12 1997/09/14 02:58:03 peter Exp $
*/
/*
@@ -81,48 +81,4 @@ struct flock;
struct buf;
struct uio;
-int spec_badop __P((void));
-int spec_lookup __P((struct vop_lookup_args *));
-#define spec_create ((int (*) __P((struct vop_create_args *)))spec_badop)
-#define spec_mknod ((int (*) __P((struct vop_mknod_args *)))spec_badop)
-int spec_open __P((struct vop_open_args *));
-int spec_close __P((struct vop_close_args *));
-#define spec_access ((int (*) __P((struct vop_access_args *)))spec_ebadf)
-#define spec_setattr ((int (*) __P((struct vop_setattr_args *)))spec_ebadf)
-int spec_read __P((struct vop_read_args *));
-int spec_write __P((struct vop_write_args *));
-#define spec_lease_check ((int (*) __P((struct vop_lease_args *)))nullop)
-int spec_ioctl __P((struct vop_ioctl_args *));
-int spec_poll __P((struct vop_poll_args *));
-#define spec_revoke vop_revoke
-#define spec_mmap ((int (*) __P((struct vop_mmap_args *)))spec_badop)
-int spec_fsync __P((struct vop_fsync_args *));
-#define spec_seek ((int (*) __P((struct vop_seek_args *)))spec_badop)
-#define spec_remove ((int (*) __P((struct vop_remove_args *)))spec_badop)
-#define spec_link ((int (*) __P((struct vop_link_args *)))spec_badop)
-#define spec_rename ((int (*) __P((struct vop_rename_args *)))spec_badop)
-#define spec_mkdir ((int (*) __P((struct vop_mkdir_args *)))spec_badop)
-#define spec_rmdir ((int (*) __P((struct vop_rmdir_args *)))spec_badop)
-#define spec_symlink ((int (*) __P((struct vop_symlink_args *)))spec_badop)
-#define spec_readdir ((int (*) __P((struct vop_readdir_args *)))spec_badop)
-#define spec_readlink ((int (*) __P((struct vop_readlink_args *)))spec_badop)
-#define spec_abortop ((int (*) __P((struct vop_abortop_args *)))spec_badop)
-int spec_inactive __P((struct vop_inactive_args *));
-#define spec_reclaim ((int (*) __P((struct vop_reclaim_args *)))nullop)
-#define spec_lock ((int (*) __P((struct vop_lock_args *)))vop_nolock)
-#define spec_unlock ((int (*) __P((struct vop_unlock_args *)))vop_nounlock)
-int spec_bmap __P((struct vop_bmap_args *));
-int spec_strategy __P((struct vop_strategy_args *));
-int spec_print __P((struct vop_print_args *));
-#define spec_islocked ((int(*) __P((struct vop_islocked_args *)))vop_noislocked)
-int spec_pathconf __P((struct vop_pathconf_args *));
-int spec_advlock __P((struct vop_advlock_args *));
-int spec_getpages __P((struct vop_getpages_args *));
-#define spec_blkatoff ((int (*) __P((struct vop_blkatoff_args *)))spec_badop)
-#define spec_valloc ((int (*) __P((struct vop_valloc_args *)))spec_badop)
-#define spec_reallocblks \
- ((int (*) __P((struct vop_reallocblks_args *)))spec_badop)
-#define spec_vfree ((int (*) __P((struct vop_vfree_args *)))spec_badop)
-#define spec_truncate ((int (*) __P((struct vop_truncate_args *)))nullop)
-#define spec_update ((int (*) __P((struct vop_update_args *)))nullop)
-#define spec_bwrite ((int (*) __P((struct vop_bwrite_args *)))nullop)
+int spec_vnoperate __P((struct vop_generic_args *));
diff --git a/sys/nfs/nfs_vnops.c b/sys/nfs/nfs_vnops.c
index bfbfd0b..6585607 100644
--- a/sys/nfs/nfs_vnops.c
+++ b/sys/nfs/nfs_vnops.c
@@ -34,7 +34,7 @@
* SUCH DAMAGE.
*
* @(#)nfs_vnops.c 8.16 (Berkeley) 5/27/95
- * $Id: nfs_vnops.c,v 1.64 1997/10/15 09:21:45 phk Exp $
+ * $Id: nfs_vnops.c,v 1.65 1997/10/15 10:05:10 phk Exp $
*/
@@ -185,42 +185,19 @@ VNODEOP_SET(nfsv2_vnodeop_opv_desc);
*/
vop_t **spec_nfsv2nodeop_p;
static struct vnodeopv_entry_desc spec_nfsv2nodeop_entries[] = {
- { &vop_default_desc, (vop_t *) vn_default_error },
- { &vop_abortop_desc, (vop_t *) spec_abortop },
+ { &vop_default_desc, (vop_t *) spec_vnoperate },
{ &vop_access_desc, (vop_t *) nfsspec_access },
- { &vop_advlock_desc, (vop_t *) spec_advlock },
- { &vop_bmap_desc, (vop_t *) spec_bmap },
{ &vop_bwrite_desc, (vop_t *) vn_bwrite },
{ &vop_close_desc, (vop_t *) nfsspec_close },
- { &vop_create_desc, (vop_t *) spec_create },
{ &vop_fsync_desc, (vop_t *) nfs_fsync },
{ &vop_getattr_desc, (vop_t *) nfs_getattr },
{ &vop_inactive_desc, (vop_t *) nfs_inactive },
- { &vop_ioctl_desc, (vop_t *) spec_ioctl },
{ &vop_islocked_desc, (vop_t *) nfs_islocked },
- { &vop_lease_desc, (vop_t *) spec_lease_check },
- { &vop_link_desc, (vop_t *) spec_link },
{ &vop_lock_desc, (vop_t *) nfs_lock },
- { &vop_lookup_desc, (vop_t *) spec_lookup },
- { &vop_mkdir_desc, (vop_t *) spec_mkdir },
- { &vop_mknod_desc, (vop_t *) spec_mknod },
- { &vop_mmap_desc, (vop_t *) spec_mmap },
- { &vop_open_desc, (vop_t *) spec_open },
- { &vop_pathconf_desc, (vop_t *) spec_pathconf },
- { &vop_poll_desc, (vop_t *) spec_poll },
{ &vop_print_desc, (vop_t *) nfs_print },
{ &vop_read_desc, (vop_t *) nfsspec_read },
- { &vop_readdir_desc, (vop_t *) spec_readdir },
- { &vop_readlink_desc, (vop_t *) spec_readlink },
{ &vop_reclaim_desc, (vop_t *) nfs_reclaim },
- { &vop_remove_desc, (vop_t *) spec_remove },
- { &vop_rename_desc, (vop_t *) spec_rename },
- { &vop_revoke_desc, (vop_t *) spec_revoke },
- { &vop_rmdir_desc, (vop_t *) spec_rmdir },
- { &vop_seek_desc, (vop_t *) spec_seek },
{ &vop_setattr_desc, (vop_t *) nfs_setattr },
- { &vop_strategy_desc, (vop_t *) spec_strategy },
- { &vop_symlink_desc, (vop_t *) spec_symlink },
{ &vop_unlock_desc, (vop_t *) nfs_unlock },
{ &vop_write_desc, (vop_t *) nfsspec_write },
{ NULL, NULL }
@@ -231,42 +208,19 @@ VNODEOP_SET(spec_nfsv2nodeop_opv_desc);
vop_t **fifo_nfsv2nodeop_p;
static struct vnodeopv_entry_desc fifo_nfsv2nodeop_entries[] = {
- { &vop_default_desc, (vop_t *) vn_default_error },
- { &vop_abortop_desc, (vop_t *) fifo_abortop },
+ { &vop_default_desc, (vop_t *) fifo_vnoperate },
{ &vop_access_desc, (vop_t *) nfsspec_access },
- { &vop_advlock_desc, (vop_t *) fifo_advlock },
- { &vop_bmap_desc, (vop_t *) fifo_bmap },
{ &vop_bwrite_desc, (vop_t *) vn_bwrite },
{ &vop_close_desc, (vop_t *) nfsfifo_close },
- { &vop_create_desc, (vop_t *) fifo_create },
{ &vop_fsync_desc, (vop_t *) nfs_fsync },
{ &vop_getattr_desc, (vop_t *) nfs_getattr },
{ &vop_inactive_desc, (vop_t *) nfs_inactive },
- { &vop_ioctl_desc, (vop_t *) fifo_ioctl },
{ &vop_islocked_desc, (vop_t *) nfs_islocked },
- { &vop_lease_desc, (vop_t *) fifo_lease_check },
- { &vop_link_desc, (vop_t *) fifo_link },
{ &vop_lock_desc, (vop_t *) nfs_lock },
- { &vop_lookup_desc, (vop_t *) fifo_lookup },
- { &vop_mkdir_desc, (vop_t *) fifo_mkdir },
- { &vop_mknod_desc, (vop_t *) fifo_mknod },
- { &vop_mmap_desc, (vop_t *) fifo_mmap },
- { &vop_open_desc, (vop_t *) fifo_open },
- { &vop_pathconf_desc, (vop_t *) fifo_pathconf },
- { &vop_poll_desc, (vop_t *) fifo_poll },
{ &vop_print_desc, (vop_t *) nfs_print },
{ &vop_read_desc, (vop_t *) nfsfifo_read },
- { &vop_readdir_desc, (vop_t *) fifo_readdir },
- { &vop_readlink_desc, (vop_t *) fifo_readlink },
{ &vop_reclaim_desc, (vop_t *) nfs_reclaim },
- { &vop_remove_desc, (vop_t *) fifo_remove },
- { &vop_rename_desc, (vop_t *) fifo_rename },
- { &vop_revoke_desc, (vop_t *) fifo_revoke },
- { &vop_rmdir_desc, (vop_t *) fifo_rmdir },
- { &vop_seek_desc, (vop_t *) fifo_seek },
{ &vop_setattr_desc, (vop_t *) nfs_setattr },
- { &vop_strategy_desc, (vop_t *) fifo_strategy },
- { &vop_symlink_desc, (vop_t *) fifo_symlink },
{ &vop_unlock_desc, (vop_t *) nfs_unlock },
{ &vop_write_desc, (vop_t *) nfsfifo_write },
{ NULL, NULL }
diff --git a/sys/nfsclient/nfs_vnops.c b/sys/nfsclient/nfs_vnops.c
index bfbfd0b..6585607 100644
--- a/sys/nfsclient/nfs_vnops.c
+++ b/sys/nfsclient/nfs_vnops.c
@@ -34,7 +34,7 @@
* SUCH DAMAGE.
*
* @(#)nfs_vnops.c 8.16 (Berkeley) 5/27/95
- * $Id: nfs_vnops.c,v 1.64 1997/10/15 09:21:45 phk Exp $
+ * $Id: nfs_vnops.c,v 1.65 1997/10/15 10:05:10 phk Exp $
*/
@@ -185,42 +185,19 @@ VNODEOP_SET(nfsv2_vnodeop_opv_desc);
*/
vop_t **spec_nfsv2nodeop_p;
static struct vnodeopv_entry_desc spec_nfsv2nodeop_entries[] = {
- { &vop_default_desc, (vop_t *) vn_default_error },
- { &vop_abortop_desc, (vop_t *) spec_abortop },
+ { &vop_default_desc, (vop_t *) spec_vnoperate },
{ &vop_access_desc, (vop_t *) nfsspec_access },
- { &vop_advlock_desc, (vop_t *) spec_advlock },
- { &vop_bmap_desc, (vop_t *) spec_bmap },
{ &vop_bwrite_desc, (vop_t *) vn_bwrite },
{ &vop_close_desc, (vop_t *) nfsspec_close },
- { &vop_create_desc, (vop_t *) spec_create },
{ &vop_fsync_desc, (vop_t *) nfs_fsync },
{ &vop_getattr_desc, (vop_t *) nfs_getattr },
{ &vop_inactive_desc, (vop_t *) nfs_inactive },
- { &vop_ioctl_desc, (vop_t *) spec_ioctl },
{ &vop_islocked_desc, (vop_t *) nfs_islocked },
- { &vop_lease_desc, (vop_t *) spec_lease_check },
- { &vop_link_desc, (vop_t *) spec_link },
{ &vop_lock_desc, (vop_t *) nfs_lock },
- { &vop_lookup_desc, (vop_t *) spec_lookup },
- { &vop_mkdir_desc, (vop_t *) spec_mkdir },
- { &vop_mknod_desc, (vop_t *) spec_mknod },
- { &vop_mmap_desc, (vop_t *) spec_mmap },
- { &vop_open_desc, (vop_t *) spec_open },
- { &vop_pathconf_desc, (vop_t *) spec_pathconf },
- { &vop_poll_desc, (vop_t *) spec_poll },
{ &vop_print_desc, (vop_t *) nfs_print },
{ &vop_read_desc, (vop_t *) nfsspec_read },
- { &vop_readdir_desc, (vop_t *) spec_readdir },
- { &vop_readlink_desc, (vop_t *) spec_readlink },
{ &vop_reclaim_desc, (vop_t *) nfs_reclaim },
- { &vop_remove_desc, (vop_t *) spec_remove },
- { &vop_rename_desc, (vop_t *) spec_rename },
- { &vop_revoke_desc, (vop_t *) spec_revoke },
- { &vop_rmdir_desc, (vop_t *) spec_rmdir },
- { &vop_seek_desc, (vop_t *) spec_seek },
{ &vop_setattr_desc, (vop_t *) nfs_setattr },
- { &vop_strategy_desc, (vop_t *) spec_strategy },
- { &vop_symlink_desc, (vop_t *) spec_symlink },
{ &vop_unlock_desc, (vop_t *) nfs_unlock },
{ &vop_write_desc, (vop_t *) nfsspec_write },
{ NULL, NULL }
@@ -231,42 +208,19 @@ VNODEOP_SET(spec_nfsv2nodeop_opv_desc);
vop_t **fifo_nfsv2nodeop_p;
static struct vnodeopv_entry_desc fifo_nfsv2nodeop_entries[] = {
- { &vop_default_desc, (vop_t *) vn_default_error },
- { &vop_abortop_desc, (vop_t *) fifo_abortop },
+ { &vop_default_desc, (vop_t *) fifo_vnoperate },
{ &vop_access_desc, (vop_t *) nfsspec_access },
- { &vop_advlock_desc, (vop_t *) fifo_advlock },
- { &vop_bmap_desc, (vop_t *) fifo_bmap },
{ &vop_bwrite_desc, (vop_t *) vn_bwrite },
{ &vop_close_desc, (vop_t *) nfsfifo_close },
- { &vop_create_desc, (vop_t *) fifo_create },
{ &vop_fsync_desc, (vop_t *) nfs_fsync },
{ &vop_getattr_desc, (vop_t *) nfs_getattr },
{ &vop_inactive_desc, (vop_t *) nfs_inactive },
- { &vop_ioctl_desc, (vop_t *) fifo_ioctl },
{ &vop_islocked_desc, (vop_t *) nfs_islocked },
- { &vop_lease_desc, (vop_t *) fifo_lease_check },
- { &vop_link_desc, (vop_t *) fifo_link },
{ &vop_lock_desc, (vop_t *) nfs_lock },
- { &vop_lookup_desc, (vop_t *) fifo_lookup },
- { &vop_mkdir_desc, (vop_t *) fifo_mkdir },
- { &vop_mknod_desc, (vop_t *) fifo_mknod },
- { &vop_mmap_desc, (vop_t *) fifo_mmap },
- { &vop_open_desc, (vop_t *) fifo_open },
- { &vop_pathconf_desc, (vop_t *) fifo_pathconf },
- { &vop_poll_desc, (vop_t *) fifo_poll },
{ &vop_print_desc, (vop_t *) nfs_print },
{ &vop_read_desc, (vop_t *) nfsfifo_read },
- { &vop_readdir_desc, (vop_t *) fifo_readdir },
- { &vop_readlink_desc, (vop_t *) fifo_readlink },
{ &vop_reclaim_desc, (vop_t *) nfs_reclaim },
- { &vop_remove_desc, (vop_t *) fifo_remove },
- { &vop_rename_desc, (vop_t *) fifo_rename },
- { &vop_revoke_desc, (vop_t *) fifo_revoke },
- { &vop_rmdir_desc, (vop_t *) fifo_rmdir },
- { &vop_seek_desc, (vop_t *) fifo_seek },
{ &vop_setattr_desc, (vop_t *) nfs_setattr },
- { &vop_strategy_desc, (vop_t *) fifo_strategy },
- { &vop_symlink_desc, (vop_t *) fifo_symlink },
{ &vop_unlock_desc, (vop_t *) nfs_unlock },
{ &vop_write_desc, (vop_t *) nfsfifo_write },
{ NULL, NULL }
diff --git a/sys/ufs/ffs/ffs_vnops.c b/sys/ufs/ffs/ffs_vnops.c
index b553d21..d3b9085 100644
--- a/sys/ufs/ffs/ffs_vnops.c
+++ b/sys/ufs/ffs/ffs_vnops.c
@@ -31,7 +31,7 @@
* SUCH DAMAGE.
*
* @(#)ffs_vnops.c 8.15 (Berkeley) 5/14/95
- * $Id: ffs_vnops.c,v 1.32 1997/10/15 09:21:56 phk Exp $
+ * $Id: ffs_vnops.c,v 1.33 1997/10/15 10:05:17 phk Exp $
*/
#include <sys/param.h>
@@ -72,52 +72,16 @@ static int ffs_write __P((struct vop_write_args *));
/* Global vfs data structures for ufs. */
vop_t **ffs_vnodeop_p;
static struct vnodeopv_entry_desc ffs_vnodeop_entries[] = {
- { &vop_default_desc, (vop_t *) vn_default_error },
- { &vop_abortop_desc, (vop_t *) ufs_abortop },
- { &vop_access_desc, (vop_t *) ufs_access },
- { &vop_advlock_desc, (vop_t *) ufs_advlock },
+ { &vop_default_desc, (vop_t *) ufs_vnoperate },
{ &vop_blkatoff_desc, (vop_t *) ffs_blkatoff },
- { &vop_bmap_desc, (vop_t *) ufs_bmap },
- { &vop_bwrite_desc, (vop_t *) vn_bwrite },
- { &vop_cachedlookup_desc, (vop_t *) ufs_lookup },
- { &vop_close_desc, (vop_t *) ufs_close },
- { &vop_create_desc, (vop_t *) ufs_create },
{ &vop_fsync_desc, (vop_t *) ffs_fsync },
- { &vop_getattr_desc, (vop_t *) ufs_getattr },
{ &vop_getpages_desc, (vop_t *) ffs_getpages },
- { &vop_inactive_desc, (vop_t *) ufs_inactive },
- { &vop_ioctl_desc, (vop_t *) ufs_ioctl },
- { &vop_islocked_desc, (vop_t *) ufs_islocked },
- { &vop_lease_desc, (vop_t *) ufs_lease_check },
- { &vop_link_desc, (vop_t *) ufs_link },
- { &vop_lock_desc, (vop_t *) ufs_lock },
- { &vop_lookup_desc, (vop_t *) vfs_cache_lookup },
- { &vop_mkdir_desc, (vop_t *) ufs_mkdir },
- { &vop_mknod_desc, (vop_t *) ufs_mknod },
- { &vop_mmap_desc, (vop_t *) ufs_mmap },
- { &vop_open_desc, (vop_t *) ufs_open },
- { &vop_pathconf_desc, (vop_t *) ufs_pathconf },
- { &vop_poll_desc, (vop_t *) ufs_poll },
- { &vop_print_desc, (vop_t *) ufs_print },
{ &vop_read_desc, (vop_t *) ffs_read },
- { &vop_readdir_desc, (vop_t *) ufs_readdir },
- { &vop_readlink_desc, (vop_t *) ufs_readlink },
{ &vop_reallocblks_desc, (vop_t *) ffs_reallocblks },
- { &vop_reclaim_desc, (vop_t *) ufs_reclaim },
- { &vop_remove_desc, (vop_t *) ufs_remove },
- { &vop_rename_desc, (vop_t *) ufs_rename },
- { &vop_revoke_desc, (vop_t *) ufs_revoke },
- { &vop_rmdir_desc, (vop_t *) ufs_rmdir },
- { &vop_seek_desc, (vop_t *) ufs_seek },
- { &vop_setattr_desc, (vop_t *) ufs_setattr },
- { &vop_strategy_desc, (vop_t *) ufs_strategy },
- { &vop_symlink_desc, (vop_t *) ufs_symlink },
{ &vop_truncate_desc, (vop_t *) ffs_truncate },
- { &vop_unlock_desc, (vop_t *) ufs_unlock },
{ &vop_update_desc, (vop_t *) ffs_update },
{ &vop_valloc_desc, (vop_t *) ffs_valloc },
{ &vop_vfree_desc, (vop_t *) ffs_vfree },
- { &vop_whiteout_desc, (vop_t *) ufs_whiteout },
{ &vop_write_desc, (vop_t *) ffs_write },
{ NULL, NULL }
};
@@ -126,51 +90,10 @@ static struct vnodeopv_desc ffs_vnodeop_opv_desc =
vop_t **ffs_specop_p;
static struct vnodeopv_entry_desc ffs_specop_entries[] = {
- { &vop_default_desc, (vop_t *) vn_default_error },
- { &vop_abortop_desc, (vop_t *) spec_abortop },
- { &vop_access_desc, (vop_t *) ufs_access },
- { &vop_advlock_desc, (vop_t *) spec_advlock },
- { &vop_blkatoff_desc, (vop_t *) spec_blkatoff },
- { &vop_bmap_desc, (vop_t *) spec_bmap },
- { &vop_bwrite_desc, (vop_t *) vn_bwrite },
- { &vop_close_desc, (vop_t *) ufsspec_close },
- { &vop_create_desc, (vop_t *) spec_create },
+ { &vop_default_desc, (vop_t *) ufs_vnoperatespec },
{ &vop_fsync_desc, (vop_t *) ffs_fsync },
- { &vop_getattr_desc, (vop_t *) ufs_getattr },
- { &vop_getpages_desc, (vop_t *) spec_getpages },
- { &vop_inactive_desc, (vop_t *) ufs_inactive },
- { &vop_ioctl_desc, (vop_t *) spec_ioctl },
- { &vop_islocked_desc, (vop_t *) ufs_islocked },
- { &vop_lease_desc, (vop_t *) spec_lease_check },
- { &vop_link_desc, (vop_t *) spec_link },
- { &vop_lock_desc, (vop_t *) ufs_lock },
- { &vop_lookup_desc, (vop_t *) spec_lookup },
- { &vop_mkdir_desc, (vop_t *) spec_mkdir },
- { &vop_mknod_desc, (vop_t *) spec_mknod },
- { &vop_mmap_desc, (vop_t *) spec_mmap },
- { &vop_open_desc, (vop_t *) spec_open },
- { &vop_pathconf_desc, (vop_t *) spec_pathconf },
- { &vop_poll_desc, (vop_t *) spec_poll },
- { &vop_print_desc, (vop_t *) ufs_print },
- { &vop_read_desc, (vop_t *) ufsspec_read },
- { &vop_readdir_desc, (vop_t *) spec_readdir },
- { &vop_readlink_desc, (vop_t *) spec_readlink },
- { &vop_reallocblks_desc, (vop_t *) spec_reallocblks },
- { &vop_reclaim_desc, (vop_t *) ufs_reclaim },
- { &vop_remove_desc, (vop_t *) spec_remove },
- { &vop_rename_desc, (vop_t *) spec_rename },
- { &vop_revoke_desc, (vop_t *) spec_revoke },
- { &vop_rmdir_desc, (vop_t *) spec_rmdir },
- { &vop_seek_desc, (vop_t *) spec_seek },
- { &vop_setattr_desc, (vop_t *) ufs_setattr },
- { &vop_strategy_desc, (vop_t *) spec_strategy },
- { &vop_symlink_desc, (vop_t *) spec_symlink },
- { &vop_truncate_desc, (vop_t *) spec_truncate },
- { &vop_unlock_desc, (vop_t *) ufs_unlock },
{ &vop_update_desc, (vop_t *) ffs_update },
- { &vop_valloc_desc, (vop_t *) spec_valloc },
{ &vop_vfree_desc, (vop_t *) ffs_vfree },
- { &vop_write_desc, (vop_t *) ufsspec_write },
{ NULL, NULL }
};
static struct vnodeopv_desc ffs_specop_opv_desc =
@@ -178,50 +101,10 @@ static struct vnodeopv_desc ffs_specop_opv_desc =
vop_t **ffs_fifoop_p;
static struct vnodeopv_entry_desc ffs_fifoop_entries[] = {
- { &vop_default_desc, (vop_t *) vn_default_error },
- { &vop_abortop_desc, (vop_t *) fifo_abortop },
- { &vop_access_desc, (vop_t *) ufs_access },
- { &vop_advlock_desc, (vop_t *) fifo_advlock },
- { &vop_blkatoff_desc, (vop_t *) fifo_blkatoff },
- { &vop_bmap_desc, (vop_t *) fifo_bmap },
- { &vop_bwrite_desc, (vop_t *) vn_bwrite },
- { &vop_close_desc, (vop_t *) ufsfifo_close },
- { &vop_create_desc, (vop_t *) fifo_create },
+ { &vop_default_desc, (vop_t *) ufs_vnoperatefifo },
{ &vop_fsync_desc, (vop_t *) ffs_fsync },
- { &vop_getattr_desc, (vop_t *) ufs_getattr },
- { &vop_inactive_desc, (vop_t *) ufs_inactive },
- { &vop_ioctl_desc, (vop_t *) fifo_ioctl },
- { &vop_islocked_desc, (vop_t *) ufs_islocked },
- { &vop_lease_desc, (vop_t *) fifo_lease_check },
- { &vop_link_desc, (vop_t *) fifo_link },
- { &vop_lock_desc, (vop_t *) ufs_lock },
- { &vop_lookup_desc, (vop_t *) fifo_lookup },
- { &vop_mkdir_desc, (vop_t *) fifo_mkdir },
- { &vop_mknod_desc, (vop_t *) fifo_mknod },
- { &vop_mmap_desc, (vop_t *) fifo_mmap },
- { &vop_open_desc, (vop_t *) fifo_open },
- { &vop_pathconf_desc, (vop_t *) fifo_pathconf },
- { &vop_poll_desc, (vop_t *) fifo_poll },
- { &vop_print_desc, (vop_t *) ufs_print },
- { &vop_read_desc, (vop_t *) ufsfifo_read },
- { &vop_readdir_desc, (vop_t *) fifo_readdir },
- { &vop_readlink_desc, (vop_t *) fifo_readlink },
- { &vop_reallocblks_desc, (vop_t *) fifo_reallocblks },
- { &vop_reclaim_desc, (vop_t *) ufs_reclaim },
- { &vop_remove_desc, (vop_t *) fifo_remove },
- { &vop_rename_desc, (vop_t *) fifo_rename },
- { &vop_revoke_desc, (vop_t *) fifo_revoke },
- { &vop_rmdir_desc, (vop_t *) fifo_rmdir },
- { &vop_seek_desc, (vop_t *) fifo_seek },
- { &vop_setattr_desc, (vop_t *) ufs_setattr },
- { &vop_strategy_desc, (vop_t *) fifo_strategy },
- { &vop_symlink_desc, (vop_t *) fifo_symlink },
- { &vop_truncate_desc, (vop_t *) fifo_truncate },
- { &vop_unlock_desc, (vop_t *) ufs_unlock },
{ &vop_update_desc, (vop_t *) ffs_update },
- { &vop_valloc_desc, (vop_t *) fifo_valloc },
{ &vop_vfree_desc, (vop_t *) ffs_vfree },
- { &vop_write_desc, (vop_t *) ufsfifo_write },
{ NULL, NULL }
};
static struct vnodeopv_desc ffs_fifoop_opv_desc =
diff --git a/sys/ufs/lfs/lfs_vnops.c b/sys/ufs/lfs/lfs_vnops.c
index 8a4d836..b7d930f 100644
--- a/sys/ufs/lfs/lfs_vnops.c
+++ b/sys/ufs/lfs/lfs_vnops.c
@@ -31,7 +31,7 @@
* SUCH DAMAGE.
*
* @(#)lfs_vnops.c 8.13 (Berkeley) 6/10/95
- * $Id: lfs_vnops.c,v 1.25 1997/10/15 09:21:59 phk Exp $
+ * $Id: lfs_vnops.c,v 1.26 1997/10/15 10:05:23 phk Exp $
*/
#include <sys/param.h>
@@ -72,50 +72,20 @@ static int lfs_write __P((struct vop_write_args *));
/* Global vfs data structures for lfs. */
vop_t **lfs_vnodeop_p;
static struct vnodeopv_entry_desc lfs_vnodeop_entries[] = {
- { &vop_default_desc, (vop_t *) vn_default_error },
- { &vop_abortop_desc, (vop_t *) ufs_abortop },
- { &vop_access_desc, (vop_t *) ufs_access },
- { &vop_advlock_desc, (vop_t *) ufs_advlock },
+ { &vop_default_desc, (vop_t *) ufs_vnoperate },
+
{ &vop_blkatoff_desc, (vop_t *) lfs_blkatoff },
- { &vop_bmap_desc, (vop_t *) ufs_bmap },
{ &vop_bwrite_desc, (vop_t *) lfs_bwrite },
{ &vop_close_desc, (vop_t *) lfs_close },
- { &vop_create_desc, (vop_t *) ufs_create },
{ &vop_fsync_desc, (vop_t *) lfs_fsync },
{ &vop_getattr_desc, (vop_t *) lfs_getattr },
- { &vop_inactive_desc, (vop_t *) ufs_inactive },
- { &vop_ioctl_desc, (vop_t *) ufs_ioctl },
- { &vop_islocked_desc, (vop_t *) ufs_islocked },
- { &vop_lease_desc, (vop_t *) ufs_lease_check },
- { &vop_link_desc, (vop_t *) ufs_link },
- { &vop_lock_desc, (vop_t *) ufs_lock },
- { &vop_lookup_desc, (vop_t *) ufs_lookup },
- { &vop_mkdir_desc, (vop_t *) ufs_mkdir },
- { &vop_mknod_desc, (vop_t *) ufs_mknod },
- { &vop_mmap_desc, (vop_t *) ufs_mmap },
- { &vop_open_desc, (vop_t *) ufs_open },
- { &vop_pathconf_desc, (vop_t *) ufs_pathconf },
- { &vop_poll_desc, (vop_t *) ufs_poll },
- { &vop_print_desc, (vop_t *) ufs_print },
{ &vop_read_desc, (vop_t *) lfs_read },
- { &vop_readdir_desc, (vop_t *) ufs_readdir },
- { &vop_readlink_desc, (vop_t *) ufs_readlink },
- { &vop_reclaim_desc, (vop_t *) ufs_reclaim },
- { &vop_remove_desc, (vop_t *) ufs_remove },
- { &vop_rename_desc, (vop_t *) ufs_rename },
- { &vop_revoke_desc, (vop_t *) ufs_revoke },
- { &vop_rmdir_desc, (vop_t *) ufs_rmdir },
- { &vop_seek_desc, (vop_t *) ufs_seek },
- { &vop_setattr_desc, (vop_t *) ufs_setattr },
- { &vop_strategy_desc, (vop_t *) ufs_strategy },
- { &vop_symlink_desc, (vop_t *) ufs_symlink },
{ &vop_truncate_desc, (vop_t *) lfs_truncate },
- { &vop_unlock_desc, (vop_t *) ufs_unlock },
{ &vop_update_desc, (vop_t *) lfs_update },
{ &vop_valloc_desc, (vop_t *) lfs_valloc },
{ &vop_vfree_desc, (vop_t *) lfs_vfree },
- { &vop_whiteout_desc, (vop_t *) ufs_whiteout },
{ &vop_write_desc, (vop_t *) lfs_write },
+ { &vop_lookup_desc, (vop_t *) ufs_lookup },
{ NULL, NULL }
};
static struct vnodeopv_desc lfs_vnodeop_opv_desc =
@@ -123,49 +93,11 @@ static struct vnodeopv_desc lfs_vnodeop_opv_desc =
vop_t **lfs_specop_p;
static struct vnodeopv_entry_desc lfs_specop_entries[] = {
- { &vop_default_desc, (vop_t *) vn_default_error },
- { &vop_abortop_desc, (vop_t *) spec_abortop },
- { &vop_access_desc, (vop_t *) ufs_access },
- { &vop_advlock_desc, (vop_t *) spec_advlock },
- { &vop_blkatoff_desc, (vop_t *) spec_blkatoff },
- { &vop_bmap_desc, (vop_t *) spec_bmap },
+ { &vop_default_desc, (vop_t *) ufs_vnoperatespec },
{ &vop_bwrite_desc, (vop_t *) lfs_bwrite },
- { &vop_close_desc, (vop_t *) ufsspec_close },
- { &vop_create_desc, (vop_t *) spec_create },
- { &vop_fsync_desc, (vop_t *) spec_fsync },
{ &vop_getattr_desc, (vop_t *) lfs_getattr },
- { &vop_inactive_desc, (vop_t *) ufs_inactive },
- { &vop_ioctl_desc, (vop_t *) spec_ioctl },
- { &vop_islocked_desc, (vop_t *) ufs_islocked },
- { &vop_lease_desc, (vop_t *) spec_lease_check },
- { &vop_link_desc, (vop_t *) spec_link },
- { &vop_lock_desc, (vop_t *) ufs_lock },
- { &vop_lookup_desc, (vop_t *) spec_lookup },
- { &vop_mkdir_desc, (vop_t *) spec_mkdir },
- { &vop_mknod_desc, (vop_t *) spec_mknod },
- { &vop_mmap_desc, (vop_t *) spec_mmap },
- { &vop_open_desc, (vop_t *) spec_open },
- { &vop_pathconf_desc, (vop_t *) spec_pathconf },
- { &vop_poll_desc, (vop_t *) spec_poll },
- { &vop_print_desc, (vop_t *) ufs_print },
- { &vop_read_desc, (vop_t *) ufsspec_read },
- { &vop_readdir_desc, (vop_t *) spec_readdir },
- { &vop_readlink_desc, (vop_t *) spec_readlink },
- { &vop_reclaim_desc, (vop_t *) ufs_reclaim },
- { &vop_remove_desc, (vop_t *) spec_remove },
- { &vop_rename_desc, (vop_t *) spec_rename },
- { &vop_revoke_desc, (vop_t *) spec_revoke },
- { &vop_rmdir_desc, (vop_t *) spec_rmdir },
- { &vop_seek_desc, (vop_t *) spec_seek },
- { &vop_setattr_desc, (vop_t *) ufs_setattr },
- { &vop_strategy_desc, (vop_t *) spec_strategy },
- { &vop_symlink_desc, (vop_t *) spec_symlink },
- { &vop_truncate_desc, (vop_t *) spec_truncate },
- { &vop_unlock_desc, (vop_t *) ufs_unlock },
{ &vop_update_desc, (vop_t *) lfs_update },
- { &vop_valloc_desc, (vop_t *) spec_valloc },
{ &vop_vfree_desc, (vop_t *) lfs_vfree },
- { &vop_write_desc, (vop_t *) ufsspec_write },
{ NULL, NULL }
};
static struct vnodeopv_desc lfs_specop_opv_desc =
@@ -173,49 +105,11 @@ static struct vnodeopv_desc lfs_specop_opv_desc =
vop_t **lfs_fifoop_p;
static struct vnodeopv_entry_desc lfs_fifoop_entries[] = {
- { &vop_default_desc, (vop_t *) vn_default_error },
- { &vop_abortop_desc, (vop_t *) fifo_abortop },
- { &vop_access_desc, (vop_t *) ufs_access },
- { &vop_advlock_desc, (vop_t *) fifo_advlock },
- { &vop_blkatoff_desc, (vop_t *) fifo_blkatoff },
- { &vop_bmap_desc, (vop_t *) fifo_bmap },
+ { &vop_default_desc, (vop_t *) ufs_vnoperatefifo },
{ &vop_bwrite_desc, (vop_t *) lfs_bwrite },
- { &vop_close_desc, (vop_t *) ufsfifo_close },
- { &vop_create_desc, (vop_t *) fifo_create },
- { &vop_fsync_desc, (vop_t *) fifo_fsync },
{ &vop_getattr_desc, (vop_t *) lfs_getattr },
- { &vop_inactive_desc, (vop_t *) ufs_inactive },
- { &vop_ioctl_desc, (vop_t *) fifo_ioctl },
- { &vop_islocked_desc, (vop_t *) ufs_islocked },
- { &vop_lease_desc, (vop_t *) fifo_lease_check },
- { &vop_link_desc, (vop_t *) fifo_link },
- { &vop_lock_desc, (vop_t *) ufs_lock },
- { &vop_lookup_desc, (vop_t *) fifo_lookup },
- { &vop_mkdir_desc, (vop_t *) fifo_mkdir },
- { &vop_mknod_desc, (vop_t *) fifo_mknod },
- { &vop_mmap_desc, (vop_t *) fifo_mmap },
- { &vop_open_desc, (vop_t *) fifo_open },
- { &vop_pathconf_desc, (vop_t *) fifo_pathconf },
- { &vop_poll_desc, (vop_t *) fifo_poll },
- { &vop_print_desc, (vop_t *) ufs_print },
- { &vop_read_desc, (vop_t *) ufsfifo_read },
- { &vop_readdir_desc, (vop_t *) fifo_readdir },
- { &vop_readlink_desc, (vop_t *) fifo_readlink },
- { &vop_reclaim_desc, (vop_t *) ufs_reclaim },
- { &vop_remove_desc, (vop_t *) fifo_remove },
- { &vop_rename_desc, (vop_t *) fifo_rename },
- { &vop_revoke_desc, (vop_t *) fifo_revoke },
- { &vop_rmdir_desc, (vop_t *) fifo_rmdir },
- { &vop_seek_desc, (vop_t *) fifo_seek },
- { &vop_setattr_desc, (vop_t *) ufs_setattr },
- { &vop_strategy_desc, (vop_t *) fifo_strategy },
- { &vop_symlink_desc, (vop_t *) fifo_symlink },
- { &vop_truncate_desc, (vop_t *) fifo_truncate },
- { &vop_unlock_desc, (vop_t *) ufs_unlock },
{ &vop_update_desc, (vop_t *) lfs_update },
- { &vop_valloc_desc, (vop_t *) fifo_valloc },
{ &vop_vfree_desc, (vop_t *) lfs_vfree },
- { &vop_write_desc, (vop_t *) ufsfifo_write },
{ NULL, NULL }
};
static struct vnodeopv_desc lfs_fifoop_opv_desc =
diff --git a/sys/ufs/mfs/mfs_vnops.c b/sys/ufs/mfs/mfs_vnops.c
index 76a6b4b..ce18df5 100644
--- a/sys/ufs/mfs/mfs_vnops.c
+++ b/sys/ufs/mfs/mfs_vnops.c
@@ -31,7 +31,7 @@
* SUCH DAMAGE.
*
* @(#)mfs_vnops.c 8.11 (Berkeley) 5/22/95
- * $Id: mfs_vnops.c,v 1.22 1997/10/15 09:22:02 phk Exp $
+ * $Id: mfs_vnops.c,v 1.23 1997/10/15 10:05:29 phk Exp $
*/
#include <sys/param.h>
@@ -55,6 +55,7 @@
static int mfs_badop __P((void));
static int mfs_bmap __P((struct vop_bmap_args *));
static int mfs_close __P((struct vop_close_args *));
+static int mfs_fsync __P((struct vop_fsync_args *));
static int mfs_ioctl __P((struct vop_ioctl_args *));
static int mfs_inactive __P((struct vop_inactive_args *)); /* XXX */
static int mfs_open __P((struct vop_open_args *));
@@ -74,7 +75,7 @@ static struct vnodeopv_entry_desc mfs_vnodeop_entries[] = {
{ &vop_bwrite_desc, (vop_t *) mfs_bwrite },
{ &vop_close_desc, (vop_t *) mfs_close },
{ &vop_create_desc, (vop_t *) mfs_create },
- { &vop_fsync_desc, (vop_t *) spec_fsync },
+ { &vop_fsync_desc, (vop_t *) mfs_fsync },
{ &vop_getattr_desc, (vop_t *) mfs_getattr },
{ &vop_inactive_desc, (vop_t *) mfs_inactive },
{ &vop_ioctl_desc, (vop_t *) mfs_ioctl },
@@ -139,6 +140,14 @@ mfs_open(ap)
return (0);
}
+static int
+mfs_fsync(ap)
+ struct vop_fsync_args *ap;
+{
+
+ return (VOCALL(spec_vnodeop_p, VOFFSET(vop_fsync), ap));
+}
+
/*
* Ioctl operation.
*/
diff --git a/sys/ufs/ufs/ufs_extern.h b/sys/ufs/ufs/ufs_extern.h
index facffd7..1c565d4 100644
--- a/sys/ufs/ufs/ufs_extern.h
+++ b/sys/ufs/ufs/ufs_extern.h
@@ -31,7 +31,7 @@
* SUCH DAMAGE.
*
* @(#)ufs_extern.h 8.10 (Berkeley) 5/14/95
- * $Id: ufs_extern.h,v 1.17 1997/09/14 02:58:10 peter Exp $
+ * $Id: ufs_extern.h,v 1.18 1997/10/10 18:18:12 phk Exp $
*/
#ifndef _UFS_UFS_EXTERN_H_
@@ -52,6 +52,10 @@ struct vattr;
struct vfsconf;
struct vnode;
+int ufs_vnoperate __P((struct vop_generic_args *));
+int ufs_vnoperatefifo __P((struct vop_generic_args *));
+int ufs_vnoperatespec __P((struct vop_generic_args *));
+
int ufs_abortop __P((struct vop_abortop_args *));
int ufs_access __P((struct vop_access_args *));
int ufs_advlock __P((struct vop_advlock_args *));
diff --git a/sys/ufs/ufs/ufs_vnops.c b/sys/ufs/ufs/ufs_vnops.c
index 76b5b92..89166b3 100644
--- a/sys/ufs/ufs/ufs_vnops.c
+++ b/sys/ufs/ufs/ufs_vnops.c
@@ -36,7 +36,7 @@
* SUCH DAMAGE.
*
* @(#)ufs_vnops.c 8.27 (Berkeley) 5/27/95
- * $Id: ufs_vnops.c,v 1.57 1997/09/14 02:58:12 peter Exp $
+ * $Id: ufs_vnops.c,v 1.58 1997/09/21 04:24:14 dyson Exp $
*/
#include "opt_quota.h"
@@ -68,6 +68,7 @@
static int ufs_chmod __P((struct vnode *, int, struct ucred *, struct proc *));
static int ufs_chown
__P((struct vnode *, uid_t, gid_t, struct ucred *, struct proc *));
+static int ufs_missingop __P((struct vop_generic_args *ap));
#ifdef EXT2FS
#include <gnu/ext2fs/ext2_extern.h>
@@ -2158,3 +2159,155 @@ bad:
vput(tvp);
return (error);
}
+
+static int
+ufs_missingop(ap)
+ struct vop_generic_args *ap;
+{
+ printf("Missing VOP function (%s) in UFS child",
+ ap->a_desc->vdesc_name);
+ panic("Missing VOP function in UFS");
+ return(EOPNOTSUPP);
+}
+
+/* Global vfs data structures for ufs. */
+vop_t **ufs_vnodeop_p;
+static struct vnodeopv_entry_desc ufs_vnodeop_entries[] = {
+ { &vop_default_desc, (vop_t *) vn_default_error },
+
+ { &vop_blkatoff_desc, (vop_t *) ufs_missingop },
+ { &vop_fsync_desc, (vop_t *) ufs_missingop },
+ { &vop_getpages_desc, (vop_t *) ufs_missingop },
+ { &vop_read_desc, (vop_t *) ufs_missingop },
+ { &vop_reallocblks_desc, (vop_t *) ufs_missingop },
+ { &vop_truncate_desc, (vop_t *) ufs_missingop },
+ { &vop_update_desc, (vop_t *) ufs_missingop },
+ { &vop_valloc_desc, (vop_t *) ufs_missingop },
+ { &vop_vfree_desc, (vop_t *) ufs_missingop },
+ { &vop_write_desc, (vop_t *) ufs_missingop },
+
+ { &vop_abortop_desc, (vop_t *) ufs_abortop },
+ { &vop_access_desc, (vop_t *) ufs_access },
+ { &vop_advlock_desc, (vop_t *) ufs_advlock },
+ { &vop_bmap_desc, (vop_t *) ufs_bmap },
+ { &vop_bwrite_desc, (vop_t *) vn_bwrite },
+ { &vop_cachedlookup_desc, (vop_t *) ufs_lookup },
+ { &vop_close_desc, (vop_t *) ufs_close },
+ { &vop_create_desc, (vop_t *) ufs_create },
+ { &vop_getattr_desc, (vop_t *) ufs_getattr },
+ { &vop_inactive_desc, (vop_t *) ufs_inactive },
+ { &vop_ioctl_desc, (vop_t *) ufs_ioctl },
+ { &vop_islocked_desc, (vop_t *) ufs_islocked },
+ { &vop_lease_desc, (vop_t *) ufs_lease_check },
+ { &vop_link_desc, (vop_t *) ufs_link },
+ { &vop_lock_desc, (vop_t *) ufs_lock },
+ { &vop_lookup_desc, (vop_t *) vfs_cache_lookup },
+ { &vop_mkdir_desc, (vop_t *) ufs_mkdir },
+ { &vop_mknod_desc, (vop_t *) ufs_mknod },
+ { &vop_mmap_desc, (vop_t *) ufs_mmap },
+ { &vop_open_desc, (vop_t *) ufs_open },
+ { &vop_pathconf_desc, (vop_t *) ufs_pathconf },
+ { &vop_poll_desc, (vop_t *) ufs_poll },
+ { &vop_print_desc, (vop_t *) ufs_print },
+ { &vop_readdir_desc, (vop_t *) ufs_readdir },
+ { &vop_readlink_desc, (vop_t *) ufs_readlink },
+ { &vop_reclaim_desc, (vop_t *) ufs_reclaim },
+ { &vop_remove_desc, (vop_t *) ufs_remove },
+ { &vop_rename_desc, (vop_t *) ufs_rename },
+ { &vop_revoke_desc, (vop_t *) ufs_revoke },
+ { &vop_rmdir_desc, (vop_t *) ufs_rmdir },
+ { &vop_seek_desc, (vop_t *) ufs_seek },
+ { &vop_setattr_desc, (vop_t *) ufs_setattr },
+ { &vop_strategy_desc, (vop_t *) ufs_strategy },
+ { &vop_symlink_desc, (vop_t *) ufs_symlink },
+ { &vop_unlock_desc, (vop_t *) ufs_unlock },
+ { &vop_whiteout_desc, (vop_t *) ufs_whiteout },
+ { NULL, NULL }
+};
+static struct vnodeopv_desc ufs_vnodeop_opv_desc =
+ { &ufs_vnodeop_p, ufs_vnodeop_entries };
+
+vop_t **ufs_specop_p;
+static struct vnodeopv_entry_desc ufs_specop_entries[] = {
+ { &vop_default_desc, (vop_t *) spec_vnoperate },
+
+ { &vop_fsync_desc, (vop_t *) ufs_missingop },
+ { &vop_update_desc, (vop_t *) ufs_missingop },
+ { &vop_vfree_desc, (vop_t *) ufs_missingop },
+
+ { &vop_access_desc, (vop_t *) ufs_access },
+ { &vop_bwrite_desc, (vop_t *) vn_bwrite },
+ { &vop_close_desc, (vop_t *) ufsspec_close },
+ { &vop_getattr_desc, (vop_t *) ufs_getattr },
+ { &vop_inactive_desc, (vop_t *) ufs_inactive },
+ { &vop_islocked_desc, (vop_t *) ufs_islocked },
+ { &vop_lock_desc, (vop_t *) ufs_lock },
+ { &vop_print_desc, (vop_t *) ufs_print },
+ { &vop_read_desc, (vop_t *) ufsspec_read },
+ { &vop_reclaim_desc, (vop_t *) ufs_reclaim },
+ { &vop_setattr_desc, (vop_t *) ufs_setattr },
+ { &vop_unlock_desc, (vop_t *) ufs_unlock },
+ { &vop_write_desc, (vop_t *) ufsspec_write },
+ { NULL, NULL }
+};
+static struct vnodeopv_desc ufs_specop_opv_desc =
+ { &ufs_specop_p, ufs_specop_entries };
+
+vop_t **ufs_fifoop_p;
+static struct vnodeopv_entry_desc ufs_fifoop_entries[] = {
+ { &vop_default_desc, (vop_t *) fifo_vnoperate },
+
+ { &vop_fsync_desc, (vop_t *) ufs_missingop },
+ { &vop_update_desc, (vop_t *) ufs_missingop },
+ { &vop_vfree_desc, (vop_t *) ufs_missingop },
+
+ { &vop_access_desc, (vop_t *) ufs_access },
+ { &vop_bwrite_desc, (vop_t *) vn_bwrite },
+ { &vop_close_desc, (vop_t *) ufsfifo_close },
+ { &vop_getattr_desc, (vop_t *) ufs_getattr },
+ { &vop_inactive_desc, (vop_t *) ufs_inactive },
+ { &vop_islocked_desc, (vop_t *) ufs_islocked },
+ { &vop_lock_desc, (vop_t *) ufs_lock },
+ { &vop_print_desc, (vop_t *) ufs_print },
+ { &vop_read_desc, (vop_t *) ufsfifo_read },
+ { &vop_reclaim_desc, (vop_t *) ufs_reclaim },
+ { &vop_setattr_desc, (vop_t *) ufs_setattr },
+ { &vop_unlock_desc, (vop_t *) ufs_unlock },
+ { &vop_write_desc, (vop_t *) ufsfifo_write },
+ { NULL, NULL }
+};
+static struct vnodeopv_desc ufs_fifoop_opv_desc =
+ { &ufs_fifoop_p, ufs_fifoop_entries };
+
+VNODEOP_SET(ufs_vnodeop_opv_desc);
+VNODEOP_SET(ufs_specop_opv_desc);
+VNODEOP_SET(ufs_fifoop_opv_desc);
+
+int
+ufs_vnoperate(ap)
+ struct vop_generic_args /* {
+ struct vnodeop_desc *a_desc;
+ } */ *ap;
+{
+ return (VOCALL(ufs_vnodeop_p, ap->a_desc->vdesc_offset, ap));
+}
+
+int
+ufs_vnoperatefifo(ap)
+ struct vop_generic_args /* {
+ struct vnodeop_desc *a_desc;
+ } */ *ap;
+{
+ return (VOCALL(ufs_fifoop_p, ap->a_desc->vdesc_offset, ap));
+}
+
+int
+ufs_vnoperatespec(ap)
+ struct vop_generic_args /* {
+ struct vnodeop_desc *a_desc;
+ } */ *ap;
+{
+ return (VOCALL(ufs_specop_p, ap->a_desc->vdesc_offset, ap));
+}
+
+
OpenPOWER on IntegriCloud