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