aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPoul-Henning Kamp <phk@FreeBSD.org>1997-10-15 13:24:07 +0000
committerPoul-Henning Kamp <phk@FreeBSD.org>1997-10-15 13:24:07 +0000
commit138ec1f71aaaede702a0d6fa33094874d8b6f5e0 (patch)
treee21a4025d748fb2b82ea35595522f8a53ae1733d
parent28185a1971547561058b924fa7ca810c51a340b1 (diff)
downloadsrc-138ec1f71aaaede702a0d6fa33094874d8b6f5e0.tar.gz
src-138ec1f71aaaede702a0d6fa33094874d8b6f5e0.zip
vnops megacommit
1. Use the default function to access all the specfs operations. 2. Use the default function to access all the fifofs operations. 3. Use the default function to access all the ufs operations. 4. Fix VCALL usage in vfs_cache.c 5. Use VOCALL to access specfs functions in devfs_vnops.c 6. Staticize most of the spec and fifofs vnops functions. 7. Make UFS panic if it lacks bits of the underlying storage handling.
Notes
Notes: svn path=/head/; revision=30439
-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 9ad618fe2955..607d7d683efd 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 38314de9d1b9..ec186d0daccb 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 e8eb8739c9b8..7bddac3a3b0f 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 cb300d625d18..73361c28cbe0 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 ff82e6a0117f..97225aab1d86 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 ff82e6a0117f..97225aab1d86 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 9ad618fe2955..607d7d683efd 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 71db0b0e7091..49cd2f3fc0c6 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 6ca4e19d34ac..a97b5a9aeace 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 38314de9d1b9..ec186d0daccb 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 e8eb8739c9b8..7bddac3a3b0f 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 cb300d625d18..73361c28cbe0 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 fe046cec0a74..06a5cdd9bbe5 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 bfbfd0b6768f..6585607bacd1 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 bfbfd0b6768f..6585607bacd1 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 b553d213b2f5..d3b908528ee6 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 8a4d83604361..b7d930fa00b7 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 76a6b4b42a75..ce18df55ad4d 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 facffd785bb3..1c565d4884ed 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 76b5b924bf15..89166b313013 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));
+}
+
+