diff options
73 files changed, 526 insertions, 1491 deletions
diff --git a/sys/conf/files b/sys/conf/files index fc74ac43c42e..c7c8c99e6380 100644 --- a/sys/conf/files +++ b/sys/conf/files @@ -136,6 +136,7 @@ kern/vfs_bio.c standard kern/vfs_cache.c standard kern/vfs_cluster.c standard kern/vfs_conf.c standard +kern/vfs_default.c standard kern/vfs_init.c standard kern/vfs_lookup.c standard kern/vfs_subr.c standard diff --git a/sys/fs/cd9660/cd9660_lookup.c b/sys/fs/cd9660/cd9660_lookup.c index d416a985d96c..cf36e9221ae3 100644 --- a/sys/fs/cd9660/cd9660_lookup.c +++ b/sys/fs/cd9660/cd9660_lookup.c @@ -38,7 +38,7 @@ * from: @(#)ufs_lookup.c 7.33 (Berkeley) 5/19/91 * * @(#)cd9660_lookup.c 8.2 (Berkeley) 1/23/94 - * $Id: cd9660_lookup.c,v 1.17 1997/08/26 07:32:30 phk Exp $ + * $Id: cd9660_lookup.c,v 1.18 1997/09/10 19:43:15 phk Exp $ */ #include <sys/param.h> @@ -165,7 +165,7 @@ cd9660_lookup(ap) } else { dp->i_offset = dp->i_diroff; if ((entryoffsetinblock = dp->i_offset & bmask) && - (error = VOP_BLKATOFF(vdp, (off_t)dp->i_offset, NULL, &bp))) + (error = cd9660_blkatoff(vdp, (off_t)dp->i_offset, NULL, &bp))) return (error); numdirpasses = 2; nchstats.ncs_2passes++; @@ -183,7 +183,7 @@ searchloop: if (bp != NULL) brelse(bp); if (error = - VOP_BLKATOFF(vdp, (off_t)dp->i_offset, NULL, &bp)) + cd9660_blkatoff(vdp, (off_t)dp->i_offset, NULL, &bp)) return (error); entryoffsetinblock = 0; } @@ -280,7 +280,7 @@ foundino: lblkno(imp, saveoffset)) { if (bp != NULL) brelse(bp); - if (error = VOP_BLKATOFF(vdp, + if (error = cd9660_blkatoff(vdp, (off_t)saveoffset, NULL, &bp)) return (error); } @@ -394,13 +394,11 @@ found: * remaining space in the directory. */ int -cd9660_blkatoff(ap) - struct vop_blkatoff_args /* { - struct vnode *a_vp; - off_t a_offset; - char **a_res; - struct buf **a_bpp; - } */ *ap; +cd9660_blkatoff(vp, offset, res, bpp) + struct vnode *vp; + off_t offset; + char **res; + struct buf **bpp; { struct iso_node *ip; register struct iso_mnt *imp; @@ -408,18 +406,18 @@ cd9660_blkatoff(ap) daddr_t lbn; int bsize, error; - ip = VTOI(ap->a_vp); + ip = VTOI(vp); imp = ip->i_mnt; - lbn = lblkno(imp, ap->a_offset); + lbn = lblkno(imp, offset); bsize = blksize(imp, ip, lbn); - if (error = bread(ap->a_vp, lbn, bsize, NOCRED, &bp)) { + if (error = bread(vp, lbn, bsize, NOCRED, &bp)) { brelse(bp); - *ap->a_bpp = NULL; + *bpp = NULL; return (error); } - if (ap->a_res) - *ap->a_res = (char *)bp->b_data + blkoff(imp, ap->a_offset); - *ap->a_bpp = bp; + if (res) + *res = (char *)bp->b_data + blkoff(imp, offset); + *bpp = bp; return (0); } diff --git a/sys/fs/cd9660/cd9660_node.c b/sys/fs/cd9660/cd9660_node.c index 8db9633dd230..0ac56f8ab8c6 100644 --- a/sys/fs/cd9660/cd9660_node.c +++ b/sys/fs/cd9660/cd9660_node.c @@ -36,7 +36,7 @@ * SUCH DAMAGE. * * @(#)cd9660_node.c 8.2 (Berkeley) 1/23/94 - * $Id: cd9660_node.c,v 1.19 1997/04/14 18:15:45 phk Exp $ + * $Id: cd9660_node.c,v 1.20 1997/08/02 14:31:18 bde Exp $ */ #include <sys/param.h> @@ -241,7 +241,7 @@ cd9660_defattr(isodir, inop, bp, ftype) if (!bp && ((imp = inop->i_mnt)->im_flags & ISOFSMNT_EXTATT) && (off = isonum_711(isodir->ext_attr_length))) { - VOP_BLKATOFF(ITOV(inop), (off_t)-(off << imp->im_bshift), NULL, + cd9660_blkatoff(ITOV(inop), (off_t)-(off << imp->im_bshift), NULL, &bp2); bp = bp2; } @@ -293,7 +293,7 @@ cd9660_deftstamp(isodir,inop,bp,ftype) if (!bp && ((imp = inop->i_mnt)->im_flags & ISOFSMNT_EXTATT) && (off = isonum_711(isodir->ext_attr_length))) { - VOP_BLKATOFF(ITOV(inop), (off_t)-(off << imp->im_bshift), NULL, + cd9660_blkatoff(ITOV(inop), (off_t)-(off << imp->im_bshift), NULL, &bp2); bp = bp2; } diff --git a/sys/fs/cd9660/cd9660_node.h b/sys/fs/cd9660/cd9660_node.h index 92e214f07bec..5c0b72166b8d 100644 --- a/sys/fs/cd9660/cd9660_node.h +++ b/sys/fs/cd9660/cd9660_node.h @@ -36,7 +36,7 @@ * SUCH DAMAGE. * * @(#)cd9660_node.h 8.6 (Berkeley) 5/14/95 - * $Id: cd9660_node.h,v 1.12 1997/08/26 07:32:31 phk Exp $ + * $Id: cd9660_node.h,v 1.13 1997/10/12 20:23:36 phk Exp $ */ /* @@ -105,8 +105,7 @@ int cd9660_inactive __P((struct vop_inactive_args *)); int cd9660_reclaim __P((struct vop_reclaim_args *)); int cd9660_bmap __P((struct vop_bmap_args *)); int cd9660_pathconf __P((struct vop_pathconf_args *)); -int cd9660_blkatoff __P((struct vop_blkatoff_args *)); -#define cd9660_revoke vop_revoke +int cd9660_blkatoff __P((struct vnode *vp, off_t offset, char **res, struct buf **bpp)); void cd9660_defattr __P((struct iso_directory_record *, struct iso_node *, struct buf *, enum ISO_FTYPE)); diff --git a/sys/fs/cd9660/cd9660_vfsops.c b/sys/fs/cd9660/cd9660_vfsops.c index 3d23f09bd330..d3db4a1da0ac 100644 --- a/sys/fs/cd9660/cd9660_vfsops.c +++ b/sys/fs/cd9660/cd9660_vfsops.c @@ -36,7 +36,7 @@ * SUCH DAMAGE. * * @(#)cd9660_vfsops.c 8.18 (Berkeley) 5/22/95 - * $Id: cd9660_vfsops.c,v 1.29 1997/09/27 13:38:48 kato Exp $ + * $Id: cd9660_vfsops.c,v 1.30 1997/10/12 20:23:38 phk Exp $ */ #include <sys/param.h> @@ -765,7 +765,7 @@ cd9660_vget_internal(mp, ino, vpp, relocated, isodir) ip->iso_start = ino >> imp->im_bshift; if (bp != 0) brelse(bp); - if (error = VOP_BLKATOFF(vp, (off_t)0, NULL, &bp)) { + if (error = cd9660_blkatoff(vp, (off_t)0, NULL, &bp)) { vput(vp); return (error); } @@ -787,7 +787,7 @@ cd9660_vget_internal(mp, ino, vpp, relocated, isodir) int off; if ((imp->im_flags & ISOFSMNT_EXTATT) && (off = isonum_711(isodir->ext_attr_length))) - VOP_BLKATOFF(vp, (off_t)-(off << imp->im_bshift), NULL, + cd9660_blkatoff(vp, (off_t)-(off << imp->im_bshift), NULL, &bp2); else bp2 = NULL; diff --git a/sys/fs/cd9660/cd9660_vnops.c b/sys/fs/cd9660/cd9660_vnops.c index 607d7d683efd..b794436451fb 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.42 1997/10/15 10:03:58 phk Exp $ + * $Id: cd9660_vnops.c,v 1.43 1997/10/15 13:22:39 phk Exp $ */ #include <sys/param.h> @@ -569,7 +569,7 @@ cd9660_readdir(ap) idp->curroff = uio->uio_offset; if ((entryoffsetinblock = idp->curroff & bmask) && - (error = VOP_BLKATOFF(vdp, (off_t)idp->curroff, NULL, &bp))) { + (error = cd9660_blkatoff(vdp, (off_t)idp->curroff, NULL, &bp))) { FREE(idp, M_TEMP); return (error); } @@ -585,7 +585,7 @@ cd9660_readdir(ap) if (bp != NULL) brelse(bp); if (error = - VOP_BLKATOFF(vdp, (off_t)idp->curroff, NULL, &bp)) + cd9660_blkatoff(vdp, (off_t)idp->curroff, NULL, &bp)) break; entryoffsetinblock = 0; } @@ -953,44 +953,6 @@ cd9660_pathconf(ap) } /* - * Global vfs data structures for isofs - */ -#define cd9660_create \ - ((int (*) __P((struct vop_create_args *)))eopnotsupp) -#define cd9660_mknod ((int (*) __P((struct vop_mknod_args *)))eopnotsupp) -#define cd9660_write ((int (*) __P((struct vop_write_args *)))eopnotsupp) -#ifdef NFS -#define cd9660_lease_check lease_check -#else -#define cd9660_lease_check ((int (*) __P((struct vop_lease_args *)))nullop) -#endif -#define cd9660_poll vop_nopoll -#define cd9660_fsync ((int (*) __P((struct vop_fsync_args *)))nullop) -#define cd9660_remove \ - ((int (*) __P((struct vop_remove_args *)))eopnotsupp) -#define cd9660_link ((int (*) __P((struct vop_link_args *)))eopnotsupp) -#define cd9660_rename \ - ((int (*) __P((struct vop_rename_args *)))eopnotsupp) -#define cd9660_mkdir ((int (*) __P((struct vop_mkdir_args *)))eopnotsupp) -#define cd9660_rmdir ((int (*) __P((struct vop_rmdir_args *)))eopnotsupp) -#define cd9660_symlink \ - ((int (*) __P((struct vop_symlink_args *)))eopnotsupp) -#define cd9660_advlock \ - ((int (*) __P((struct vop_advlock_args *)))eopnotsupp) -#define cd9660_valloc ((int(*) __P(( \ - struct vnode *pvp, \ - int mode, \ - struct ucred *cred, \ - struct vnode **vpp))) eopnotsupp) -#define cd9660_vfree ((int (*) __P((struct vop_vfree_args *)))eopnotsupp) -#define cd9660_truncate \ - ((int (*) __P((struct vop_truncate_args *)))eopnotsupp) -#define cd9660_update \ - ((int (*) __P((struct vop_update_args *)))eopnotsupp) -#define cd9660_bwrite \ - ((int (*) __P((struct vop_bwrite_args *)))eopnotsupp) - -/* * Global vfs data structures for cd9660 */ vop_t **cd9660_vnodeop_p; @@ -998,47 +960,28 @@ struct vnodeopv_entry_desc cd9660_vnodeop_entries[] = { { &vop_default_desc, (vop_t *) vn_default_error }, { &vop_abortop_desc, (vop_t *) cd9660_abortop }, { &vop_access_desc, (vop_t *) cd9660_access }, - { &vop_advlock_desc, (vop_t *) cd9660_advlock }, - { &vop_blkatoff_desc, (vop_t *) cd9660_blkatoff }, { &vop_bmap_desc, (vop_t *) cd9660_bmap }, - { &vop_bwrite_desc, (vop_t *) vn_bwrite }, { &vop_cachedlookup_desc, (vop_t *) cd9660_lookup }, { &vop_close_desc, (vop_t *) cd9660_close }, - { &vop_create_desc, (vop_t *) cd9660_create }, - { &vop_fsync_desc, (vop_t *) cd9660_fsync }, + { &vop_fsync_desc, (vop_t *) nullop }, { &vop_getattr_desc, (vop_t *) cd9660_getattr }, { &vop_inactive_desc, (vop_t *) cd9660_inactive }, { &vop_ioctl_desc, (vop_t *) cd9660_ioctl }, { &vop_islocked_desc, (vop_t *) cd9660_islocked }, - { &vop_lease_desc, (vop_t *) cd9660_lease_check }, - { &vop_link_desc, (vop_t *) cd9660_link }, { &vop_lock_desc, (vop_t *) cd9660_lock }, { &vop_lookup_desc, (vop_t *) vfs_cache_lookup }, - { &vop_mkdir_desc, (vop_t *) cd9660_mkdir }, - { &vop_mknod_desc, (vop_t *) cd9660_mknod }, { &vop_mmap_desc, (vop_t *) cd9660_mmap }, { &vop_open_desc, (vop_t *) cd9660_open }, { &vop_pathconf_desc, (vop_t *) cd9660_pathconf }, - { &vop_poll_desc, (vop_t *) cd9660_poll }, { &vop_print_desc, (vop_t *) cd9660_print }, { &vop_read_desc, (vop_t *) cd9660_read }, { &vop_readdir_desc, (vop_t *) cd9660_readdir }, { &vop_readlink_desc, (vop_t *) cd9660_readlink }, { &vop_reclaim_desc, (vop_t *) cd9660_reclaim }, - { &vop_remove_desc, (vop_t *) cd9660_remove }, - { &vop_rename_desc, (vop_t *) cd9660_rename }, - { &vop_revoke_desc, (vop_t *) cd9660_revoke }, - { &vop_rmdir_desc, (vop_t *) cd9660_rmdir }, { &vop_seek_desc, (vop_t *) cd9660_seek }, { &vop_setattr_desc, (vop_t *) cd9660_setattr }, { &vop_strategy_desc, (vop_t *) cd9660_strategy }, - { &vop_symlink_desc, (vop_t *) cd9660_symlink }, - { &vop_truncate_desc, (vop_t *) cd9660_truncate }, { &vop_unlock_desc, (vop_t *) cd9660_unlock }, - { &vop_update_desc, (vop_t *) cd9660_update }, - { &vop_valloc_desc, (vop_t *) cd9660_valloc }, - { &vop_vfree_desc, (vop_t *) cd9660_vfree }, - { &vop_write_desc, (vop_t *) cd9660_write }, { NULL, NULL } }; static struct vnodeopv_desc cd9660_vnodeop_opv_desc = @@ -1052,7 +995,6 @@ vop_t **cd9660_specop_p; struct vnodeopv_entry_desc cd9660_specop_entries[] = { { &vop_default_desc, (vop_t *) spec_vnoperate }, { &vop_access_desc, (vop_t *) cd9660_access }, - { &vop_bwrite_desc, (vop_t *) vn_bwrite }, { &vop_getattr_desc, (vop_t *) cd9660_getattr }, { &vop_inactive_desc, (vop_t *) cd9660_inactive }, { &vop_islocked_desc, (vop_t *) cd9660_islocked }, @@ -1061,7 +1003,6 @@ struct vnodeopv_entry_desc cd9660_specop_entries[] = { { &vop_reclaim_desc, (vop_t *) cd9660_reclaim }, { &vop_setattr_desc, (vop_t *) cd9660_setattr }, { &vop_unlock_desc, (vop_t *) cd9660_unlock }, - { &vop_update_desc, (vop_t *) cd9660_update }, { NULL, NULL } }; static struct vnodeopv_desc cd9660_specop_opv_desc = @@ -1072,7 +1013,6 @@ vop_t **cd9660_fifoop_p; struct vnodeopv_entry_desc cd9660_fifoop_entries[] = { { &vop_default_desc, (vop_t *) fifo_vnoperate }, { &vop_access_desc, (vop_t *) cd9660_access }, - { &vop_bwrite_desc, (vop_t *) vn_bwrite }, { &vop_getattr_desc, (vop_t *) cd9660_getattr }, { &vop_inactive_desc, (vop_t *) cd9660_inactive }, { &vop_islocked_desc, (vop_t *) cd9660_islocked }, @@ -1081,7 +1021,6 @@ struct vnodeopv_entry_desc cd9660_fifoop_entries[] = { { &vop_reclaim_desc, (vop_t *) cd9660_reclaim }, { &vop_setattr_desc, (vop_t *) cd9660_setattr }, { &vop_unlock_desc, (vop_t *) cd9660_unlock }, - { &vop_update_desc, (vop_t *) cd9660_update }, { NULL, NULL } }; static struct vnodeopv_desc cd9660_fifoop_opv_desc = diff --git a/sys/fs/deadfs/dead_vnops.c b/sys/fs/deadfs/dead_vnops.c index 43b531a7891c..3c411307ae0c 100644 --- a/sys/fs/deadfs/dead_vnops.c +++ b/sys/fs/deadfs/dead_vnops.c @@ -31,7 +31,7 @@ * SUCH DAMAGE. * * @(#)dead_vnops.c 8.1 (Berkeley) 6/10/93 - * $Id: dead_vnops.c,v 1.16 1997/10/15 09:20:50 phk Exp $ + * $Id: dead_vnops.c,v 1.17 1997/10/15 10:04:03 phk Exp $ */ #include <sys/param.h> @@ -47,88 +47,48 @@ static int chkvnlock __P((struct vnode *)); static int dead_badop __P((void)); static int dead_ebadf __P((void)); static int dead_lookup __P((struct vop_lookup_args *)); -#define dead_create ((int (*) __P((struct vop_create_args *)))dead_badop) -#define dead_mknod ((int (*) __P((struct vop_mknod_args *)))dead_badop) static int dead_open __P((struct vop_open_args *)); -#define dead_close ((int (*) __P((struct vop_close_args *)))nullop) -#define dead_access ((int (*) __P((struct vop_access_args *)))dead_ebadf) -#define dead_getattr ((int (*) __P((struct vop_getattr_args *)))dead_ebadf) -#define dead_setattr ((int (*) __P((struct vop_setattr_args *)))dead_ebadf) static int dead_read __P((struct vop_read_args *)); static int dead_write __P((struct vop_write_args *)); static int dead_ioctl __P((struct vop_ioctl_args *)); -#define dead_poll vop_nopoll -#define dead_mmap ((int (*) __P((struct vop_mmap_args *)))dead_badop) -#define dead_fsync ((int (*) __P((struct vop_fsync_args *)))nullop) -#define dead_seek ((int (*) __P((struct vop_seek_args *)))nullop) -#define dead_remove ((int (*) __P((struct vop_remove_args *)))dead_badop) -#define dead_link ((int (*) __P((struct vop_link_args *)))dead_badop) -#define dead_rename ((int (*) __P((struct vop_rename_args *)))dead_badop) -#define dead_mkdir ((int (*) __P((struct vop_mkdir_args *)))dead_badop) -#define dead_rmdir ((int (*) __P((struct vop_rmdir_args *)))dead_badop) -#define dead_symlink ((int (*) __P((struct vop_symlink_args *)))dead_badop) -#define dead_readdir ((int (*) __P((struct vop_readdir_args *)))dead_ebadf) -#define dead_readlink ((int (*) __P((struct vop_readlink_args *)))dead_ebadf) -#define dead_abortop ((int (*) __P((struct vop_abortop_args *)))dead_badop) -#define dead_inactive ((int (*) __P((struct vop_inactive_args *)))nullop) -#define dead_reclaim ((int (*) __P((struct vop_reclaim_args *)))nullop) static int dead_lock __P((struct vop_lock_args *)); -#define dead_unlock ((int (*) __P((struct vop_unlock_args *)))vop_nounlock) static int dead_bmap __P((struct vop_bmap_args *)); -static int dead_strategy __P((struct vop_strategy_args *)); static int dead_print __P((struct vop_print_args *)); -#define dead_islocked ((int(*) __P((struct vop_islocked_args *)))vop_noislocked) -#define dead_pathconf ((int (*) __P((struct vop_pathconf_args *)))dead_ebadf) -#define dead_advlock ((int (*) __P((struct vop_advlock_args *)))dead_ebadf) -#define dead_blkatoff ((int (*) __P((struct vop_blkatoff_args *)))dead_badop) -#define dead_valloc ((int (*) __P((struct vop_valloc_args *)))dead_badop) -#define dead_vfree ((int (*) __P((struct vop_vfree_args *)))dead_badop) -#define dead_truncate ((int (*) __P((struct vop_truncate_args *)))nullop) -#define dead_update ((int (*) __P((struct vop_update_args *)))nullop) -#define dead_bwrite ((int (*) __P((struct vop_bwrite_args *)))nullop) vop_t **dead_vnodeop_p; static struct vnodeopv_entry_desc dead_vnodeop_entries[] = { { &vop_default_desc, (vop_t *) vn_default_error }, - { &vop_abortop_desc, (vop_t *) dead_abortop }, - { &vop_access_desc, (vop_t *) dead_access }, - { &vop_advlock_desc, (vop_t *) dead_advlock }, - { &vop_blkatoff_desc, (vop_t *) dead_blkatoff }, + { &vop_access_desc, (vop_t *) dead_ebadf }, + { &vop_advlock_desc, (vop_t *) dead_ebadf }, { &vop_bmap_desc, (vop_t *) dead_bmap }, - { &vop_bwrite_desc, (vop_t *) dead_bwrite }, - { &vop_close_desc, (vop_t *) dead_close }, - { &vop_create_desc, (vop_t *) dead_create }, - { &vop_fsync_desc, (vop_t *) dead_fsync }, - { &vop_getattr_desc, (vop_t *) dead_getattr }, - { &vop_inactive_desc, (vop_t *) dead_inactive }, + { &vop_close_desc, (vop_t *) nullop }, + { &vop_create_desc, (vop_t *) dead_badop }, + { &vop_fsync_desc, (vop_t *) nullop }, + { &vop_getattr_desc, (vop_t *) dead_ebadf }, + { &vop_inactive_desc, (vop_t *) nullop }, { &vop_ioctl_desc, (vop_t *) dead_ioctl }, - { &vop_islocked_desc, (vop_t *) dead_islocked }, - { &vop_link_desc, (vop_t *) dead_link }, + { &vop_islocked_desc, (vop_t *) vop_noislocked }, + { &vop_link_desc, (vop_t *) dead_badop }, { &vop_lock_desc, (vop_t *) dead_lock }, { &vop_lookup_desc, (vop_t *) dead_lookup }, - { &vop_mkdir_desc, (vop_t *) dead_mkdir }, - { &vop_mknod_desc, (vop_t *) dead_mknod }, - { &vop_mmap_desc, (vop_t *) dead_mmap }, + { &vop_mkdir_desc, (vop_t *) dead_badop }, + { &vop_mknod_desc, (vop_t *) dead_badop }, + { &vop_mmap_desc, (vop_t *) dead_badop }, { &vop_open_desc, (vop_t *) dead_open }, - { &vop_pathconf_desc, (vop_t *) dead_pathconf }, - { &vop_poll_desc, (vop_t *) dead_poll }, + { &vop_pathconf_desc, (vop_t *) dead_ebadf }, { &vop_print_desc, (vop_t *) dead_print }, { &vop_read_desc, (vop_t *) dead_read }, - { &vop_readdir_desc, (vop_t *) dead_readdir }, - { &vop_readlink_desc, (vop_t *) dead_readlink }, - { &vop_reclaim_desc, (vop_t *) dead_reclaim }, - { &vop_remove_desc, (vop_t *) dead_remove }, - { &vop_rename_desc, (vop_t *) dead_rename }, - { &vop_rmdir_desc, (vop_t *) dead_rmdir }, - { &vop_seek_desc, (vop_t *) dead_seek }, - { &vop_setattr_desc, (vop_t *) dead_setattr }, - { &vop_strategy_desc, (vop_t *) dead_strategy }, - { &vop_symlink_desc, (vop_t *) dead_symlink }, - { &vop_truncate_desc, (vop_t *) dead_truncate }, - { &vop_unlock_desc, (vop_t *) dead_unlock }, - { &vop_update_desc, (vop_t *) dead_update }, - { &vop_valloc_desc, (vop_t *) dead_valloc }, - { &vop_vfree_desc, (vop_t *) dead_vfree }, + { &vop_readdir_desc, (vop_t *) dead_ebadf }, + { &vop_readlink_desc, (vop_t *) dead_ebadf }, + { &vop_reclaim_desc, (vop_t *) nullop }, + { &vop_remove_desc, (vop_t *) dead_badop }, + { &vop_rename_desc, (vop_t *) dead_badop }, + { &vop_rmdir_desc, (vop_t *) dead_badop }, + { &vop_seek_desc, (vop_t *) nullop }, + { &vop_setattr_desc, (vop_t *) dead_ebadf }, + { &vop_symlink_desc, (vop_t *) dead_badop }, + { &vop_unlock_desc, (vop_t *) vop_nounlock }, + { &vop_update_desc, (vop_t *) nullop }, { &vop_write_desc, (vop_t *) dead_write }, { NULL, NULL } }; @@ -244,23 +204,6 @@ dead_ioctl(ap) return (VCALL(ap->a_vp, VOFFSET(vop_ioctl), ap)); } -/* - * Just call the device strategy routine - */ -static int -dead_strategy(ap) - struct vop_strategy_args /* { - struct buf *a_bp; - } */ *ap; -{ - - if (ap->a_bp->b_vp == NULL || !chkvnlock(ap->a_bp->b_vp)) { - ap->a_bp->b_flags |= B_ERROR; - biodone(ap->a_bp); - return (EIO); - } - return (VOP_STRATEGY(ap->a_bp)); -} /* * Wait until the vnode has finished changing state. diff --git a/sys/fs/fdescfs/fdesc_vnops.c b/sys/fs/fdescfs/fdesc_vnops.c index c3ac29b161ed..7793177e5db2 100644 --- a/sys/fs/fdescfs/fdesc_vnops.c +++ b/sys/fs/fdescfs/fdesc_vnops.c @@ -35,7 +35,7 @@ * * @(#)fdesc_vnops.c 8.9 (Berkeley) 1/21/94 * - * $Id: fdesc_vnops.c,v 1.27 1997/10/15 09:20:57 phk Exp $ + * $Id: fdesc_vnops.c,v 1.28 1997/10/15 10:04:12 phk Exp $ */ /* @@ -99,7 +99,6 @@ static int fdesc_readlink __P((struct vop_readlink_args *ap)); static int fdesc_reclaim __P((struct vop_reclaim_args *ap)); static int fdesc_poll __P((struct vop_poll_args *ap)); static int fdesc_setattr __P((struct vop_setattr_args *ap)); -static int fdesc_vfree __P((struct vop_vfree_args *ap)); static int fdesc_write __P((struct vop_write_args *ap)); /* @@ -883,19 +882,6 @@ fdesc_print(ap) return (0); } -/*void*/ -static int -fdesc_vfree(ap) - struct vop_vfree_args /* { - struct vnode *a_pvp; - ino_t a_ino; - int a_mode; - } */ *ap; -{ - - return (0); -} - /* * /dev/fd "should never get here" operation */ @@ -907,61 +893,18 @@ fdesc_badop() /* NOTREACHED */ } -#define fdesc_create ((int (*) __P((struct vop_create_args *)))eopnotsupp) -#define fdesc_mknod ((int (*) __P((struct vop_mknod_args *)))eopnotsupp) -#define fdesc_close ((int (*) __P((struct vop_close_args *)))nullop) -#define fdesc_access ((int (*) __P((struct vop_access_args *)))nullop) -#define fdesc_mmap ((int (*) __P((struct vop_mmap_args *)))eopnotsupp) -#define fdesc_revoke vop_revoke -#define fdesc_fsync ((int (*) __P((struct vop_fsync_args *)))nullop) -#define fdesc_seek ((int (*) __P((struct vop_seek_args *)))nullop) -#define fdesc_remove ((int (*) __P((struct vop_remove_args *)))eopnotsupp) -#define fdesc_link ((int (*) __P((struct vop_link_args *)))eopnotsupp) -#define fdesc_rename ((int (*) __P((struct vop_rename_args *)))eopnotsupp) -#define fdesc_mkdir ((int (*) __P((struct vop_mkdir_args *)))eopnotsupp) -#define fdesc_rmdir ((int (*) __P((struct vop_rmdir_args *)))eopnotsupp) -#define fdesc_symlink ((int (*) __P((struct vop_symlink_args *)))eopnotsupp) -#define fdesc_abortop ((int (*) __P((struct vop_abortop_args *)))nullop) -#define fdesc_lock ((int (*) __P((struct vop_lock_args *)))vop_nolock) -#define fdesc_unlock ((int (*) __P((struct vop_unlock_args *)))vop_nounlock) -#define fdesc_bmap ((int (*) __P((struct vop_bmap_args *)))fdesc_badop) -#define fdesc_strategy ((int (*) __P((struct vop_strategy_args *)))fdesc_badop) -#define fdesc_islocked \ - ((int (*) __P((struct vop_islocked_args *)))vop_noislocked) -#define fdesc_advlock ((int (*) __P((struct vop_advlock_args *)))eopnotsupp) -#define fdesc_blkatoff \ - ((int (*) __P((struct vop_blkatoff_args *)))eopnotsupp) -#define fdesc_valloc ((int(*) __P(( \ - struct vnode *pvp, \ - int mode, \ - struct ucred *cred, \ - struct vnode **vpp))) eopnotsupp) -#define fdesc_truncate \ - ((int (*) __P((struct vop_truncate_args *)))eopnotsupp) -#define fdesc_update ((int (*) __P((struct vop_update_args *)))eopnotsupp) -#define fdesc_bwrite ((int (*) __P((struct vop_bwrite_args *)))eopnotsupp) - static struct vnodeopv_entry_desc fdesc_vnodeop_entries[] = { { &vop_default_desc, (vop_t *) vn_default_error }, - { &vop_abortop_desc, (vop_t *) fdesc_abortop }, - { &vop_access_desc, (vop_t *) fdesc_access }, - { &vop_advlock_desc, (vop_t *) fdesc_advlock }, - { &vop_blkatoff_desc, (vop_t *) fdesc_blkatoff }, - { &vop_bmap_desc, (vop_t *) fdesc_bmap }, - { &vop_bwrite_desc, (vop_t *) fdesc_bwrite }, - { &vop_close_desc, (vop_t *) fdesc_close }, - { &vop_create_desc, (vop_t *) fdesc_create }, - { &vop_fsync_desc, (vop_t *) fdesc_fsync }, + { &vop_access_desc, (vop_t *) nullop }, + { &vop_bmap_desc, (vop_t *) fdesc_badop }, + { &vop_close_desc, (vop_t *) nullop }, + { &vop_fsync_desc, (vop_t *) nullop }, { &vop_getattr_desc, (vop_t *) fdesc_getattr }, { &vop_inactive_desc, (vop_t *) fdesc_inactive }, { &vop_ioctl_desc, (vop_t *) fdesc_ioctl }, - { &vop_islocked_desc, (vop_t *) fdesc_islocked }, - { &vop_link_desc, (vop_t *) fdesc_link }, - { &vop_lock_desc, (vop_t *) fdesc_lock }, + { &vop_islocked_desc, (vop_t *) vop_noislocked }, + { &vop_lock_desc, (vop_t *) vop_nolock }, { &vop_lookup_desc, (vop_t *) fdesc_lookup }, - { &vop_mkdir_desc, (vop_t *) fdesc_mkdir }, - { &vop_mknod_desc, (vop_t *) fdesc_mknod }, - { &vop_mmap_desc, (vop_t *) fdesc_mmap }, { &vop_open_desc, (vop_t *) fdesc_open }, { &vop_pathconf_desc, (vop_t *) fdesc_pathconf }, { &vop_poll_desc, (vop_t *) fdesc_poll }, @@ -970,19 +913,9 @@ static struct vnodeopv_entry_desc fdesc_vnodeop_entries[] = { { &vop_readdir_desc, (vop_t *) fdesc_readdir }, { &vop_readlink_desc, (vop_t *) fdesc_readlink }, { &vop_reclaim_desc, (vop_t *) fdesc_reclaim }, - { &vop_remove_desc, (vop_t *) fdesc_remove }, - { &vop_rename_desc, (vop_t *) fdesc_rename }, - { &vop_revoke_desc, (vop_t *) fdesc_revoke }, - { &vop_rmdir_desc, (vop_t *) fdesc_rmdir }, - { &vop_seek_desc, (vop_t *) fdesc_seek }, + { &vop_seek_desc, (vop_t *) nullop }, { &vop_setattr_desc, (vop_t *) fdesc_setattr }, - { &vop_strategy_desc, (vop_t *) fdesc_strategy }, - { &vop_symlink_desc, (vop_t *) fdesc_symlink }, - { &vop_truncate_desc, (vop_t *) fdesc_truncate }, - { &vop_unlock_desc, (vop_t *) fdesc_unlock }, - { &vop_update_desc, (vop_t *) fdesc_update }, - { &vop_valloc_desc, (vop_t *) fdesc_valloc }, - { &vop_vfree_desc, (vop_t *) fdesc_vfree }, + { &vop_unlock_desc, (vop_t *) vop_nounlock }, { &vop_write_desc, (vop_t *) fdesc_write }, { NULL, NULL } }; diff --git a/sys/fs/fifofs/fifo_vnops.c b/sys/fs/fifofs/fifo_vnops.c index 7bddac3a3b0f..0b157a545223 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.30 1997/10/15 10:04:18 phk Exp $ + * $Id: fifo_vnops.c,v 1.31 1997/10/15 13:23:12 phk Exp $ */ #include <sys/param.h> @@ -82,9 +82,7 @@ static struct vnodeopv_entry_desc fifo_vnodeop_entries[] = { { &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_badop }, { &vop_bmap_desc, (vop_t *) fifo_bmap }, - { &vop_bwrite_desc, (vop_t *) nullop }, { &vop_close_desc, (vop_t *) fifo_close }, { &vop_create_desc, (vop_t *) fifo_badop }, { &vop_fsync_desc, (vop_t *) nullop }, @@ -110,17 +108,12 @@ static struct vnodeopv_entry_desc fifo_vnodeop_entries[] = { { &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 } }; diff --git a/sys/fs/msdosfs/msdosfs_vnops.c b/sys/fs/msdosfs/msdosfs_vnops.c index dfb416b40898..6871b107fba2 100644 --- a/sys/fs/msdosfs/msdosfs_vnops.c +++ b/sys/fs/msdosfs/msdosfs_vnops.c @@ -1,4 +1,4 @@ -/* $Id: msdosfs_vnops.c,v 1.46 1997/10/15 09:21:39 phk Exp $ */ +/* $Id: msdosfs_vnops.c,v 1.47 1997/10/15 10:05:03 phk Exp $ */ /* $NetBSD: msdosfs_vnops.c,v 1.20 1994/08/21 18:44:13 ws Exp $ */ /*- @@ -1992,7 +1992,6 @@ static struct vnodeopv_entry_desc msdosfs_vnodeop_entries[] = { { &vop_access_desc, (vop_t *) msdosfs_access }, { &vop_advlock_desc, (vop_t *) msdosfs_advlock }, { &vop_bmap_desc, (vop_t *) msdosfs_bmap }, - { &vop_bwrite_desc, (vop_t *) vn_bwrite }, { &vop_cachedlookup_desc, (vop_t *) msdosfs_lookup }, { &vop_close_desc, (vop_t *) msdosfs_close }, { &vop_create_desc, (vop_t *) msdosfs_create }, diff --git a/sys/fs/portalfs/portal_vnops.c b/sys/fs/portalfs/portal_vnops.c index 231b3851b65f..d8c2230deba7 100644 --- a/sys/fs/portalfs/portal_vnops.c +++ b/sys/fs/portalfs/portal_vnops.c @@ -35,7 +35,7 @@ * * @(#)portal_vnops.c 8.14 (Berkeley) 5/21/95 * - * $Id: portal_vnops.c,v 1.22 1997/10/15 09:21:11 phk Exp $ + * $Id: portal_vnops.c,v 1.23 1997/10/15 10:04:34 phk Exp $ */ /* @@ -78,7 +78,6 @@ static int portal_print __P((struct vop_print_args *ap)); static int portal_readdir __P((struct vop_readdir_args *ap)); static int portal_reclaim __P((struct vop_reclaim_args *ap)); static int portal_setattr __P((struct vop_setattr_args *ap)); -static int portal_vfree __P((struct vop_vfree_args *ap)); static void portal_closefd(p, fd) @@ -612,19 +611,6 @@ portal_print(ap) return (0); } -/*void*/ -static int -portal_vfree(ap) - struct vop_vfree_args /* { - struct vnode *a_pvp; - ino_t a_ino; - int a_mode; - } */ *ap; -{ - - return (0); -} - /* * Portal vnode unsupported operation @@ -647,94 +633,26 @@ portal_badop() /* NOTREACHED */ } -#define portal_create ((int (*) __P((struct vop_create_args *)))portal_enotsupp) -#define portal_mknod ((int (*) __P((struct vop_mknod_args *)))portal_enotsupp) -#define portal_close ((int (*) __P((struct vop_close_args *)))nullop) -#define portal_access ((int (*) __P((struct vop_access_args *)))nullop) -#define portal_read ((int (*) __P((struct vop_read_args *)))portal_enotsupp) -#define portal_write ((int (*) __P((struct vop_write_args *)))portal_enotsupp) -#define portal_ioctl ((int (*) __P((struct vop_ioctl_args *)))portal_enotsupp) -#define portal_mmap ((int (*) __P((struct vop_mmap_args *)))portal_enotsupp) -#define portal_poll vop_nopoll -#define portal_revoke vop_revoke -#define portal_fsync ((int (*) __P((struct vop_fsync_args *)))nullop) -#define portal_seek ((int (*) __P((struct vop_seek_args *)))nullop) -#define portal_remove ((int (*) __P((struct vop_remove_args *)))portal_enotsupp) -#define portal_link ((int (*) __P((struct vop_link_args *)))portal_enotsupp) -#define portal_rename ((int (*) __P((struct vop_rename_args *)))portal_enotsupp) -#define portal_mkdir ((int (*) __P((struct vop_mkdir_args *)))portal_enotsupp) -#define portal_rmdir ((int (*) __P((struct vop_rmdir_args *)))portal_enotsupp) -#define portal_symlink \ - ((int (*) __P((struct vop_symlink_args *)))portal_enotsupp) -#define portal_readlink \ - ((int (*) __P((struct vop_readlink_args *)))portal_enotsupp) -#define portal_abortop ((int (*) __P((struct vop_abortop_args *)))nullop) -#define portal_lock ((int (*) __P((struct vop_lock_args *)))vop_nolock) -#define portal_unlock ((int (*) __P((struct vop_unlock_args *)))vop_nounlock) -#define portal_bmap ((int (*) __P((struct vop_bmap_args *)))portal_badop) -#define portal_strategy \ - ((int (*) __P((struct vop_strategy_args *)))portal_badop) -#define portal_islocked \ - ((int (*) __P((struct vop_islocked_args *)))vop_noislocked) -#define fifo_islocked ((int(*) __P((struct vop_islocked_args *)))vop_noislocked) -#define portal_advlock \ - ((int (*) __P((struct vop_advlock_args *)))portal_enotsupp) -#define portal_blkatoff \ - ((int (*) __P((struct vop_blkatoff_args *)))portal_enotsupp) -#define portal_valloc ((int(*) __P(( \ - struct vnode *pvp, \ - int mode, \ - struct ucred *cred, \ - struct vnode **vpp))) portal_enotsupp) -#define portal_truncate \ - ((int (*) __P((struct vop_truncate_args *)))portal_enotsupp) -#define portal_update ((int (*) __P((struct vop_update_args *)))portal_enotsupp) -#define portal_bwrite ((int (*) __P((struct vop_bwrite_args *)))portal_enotsupp) - vop_t **portal_vnodeop_p; static struct vnodeopv_entry_desc portal_vnodeop_entries[] = { { &vop_default_desc, (vop_t *) vn_default_error }, - { &vop_abortop_desc, (vop_t *) portal_abortop }, - { &vop_access_desc, (vop_t *) portal_access }, - { &vop_advlock_desc, (vop_t *) portal_advlock }, - { &vop_blkatoff_desc, (vop_t *) portal_blkatoff }, - { &vop_bmap_desc, (vop_t *) portal_bmap }, - { &vop_bwrite_desc, (vop_t *) portal_bwrite }, - { &vop_close_desc, (vop_t *) portal_close }, - { &vop_create_desc, (vop_t *) portal_create }, - { &vop_fsync_desc, (vop_t *) portal_fsync }, + { &vop_access_desc, (vop_t *) nullop }, + { &vop_bmap_desc, (vop_t *) portal_badop }, + { &vop_close_desc, (vop_t *) nullop }, + { &vop_fsync_desc, (vop_t *) nullop }, { &vop_getattr_desc, (vop_t *) portal_getattr }, { &vop_inactive_desc, (vop_t *) portal_inactive }, - { &vop_ioctl_desc, (vop_t *) portal_ioctl }, - { &vop_islocked_desc, (vop_t *) portal_islocked }, - { &vop_link_desc, (vop_t *) portal_link }, - { &vop_lock_desc, (vop_t *) portal_lock }, + { &vop_islocked_desc, (vop_t *) vop_noislocked }, + { &vop_lock_desc, (vop_t *) vop_nolock }, { &vop_lookup_desc, (vop_t *) portal_lookup }, - { &vop_mkdir_desc, (vop_t *) portal_mkdir }, - { &vop_mknod_desc, (vop_t *) portal_mknod }, - { &vop_mmap_desc, (vop_t *) portal_mmap }, { &vop_open_desc, (vop_t *) portal_open }, { &vop_pathconf_desc, (vop_t *) portal_pathconf }, - { &vop_poll_desc, (vop_t *) portal_poll }, { &vop_print_desc, (vop_t *) portal_print }, - { &vop_read_desc, (vop_t *) portal_read }, { &vop_readdir_desc, (vop_t *) portal_readdir }, - { &vop_readlink_desc, (vop_t *) portal_readlink }, { &vop_reclaim_desc, (vop_t *) portal_reclaim }, - { &vop_remove_desc, (vop_t *) portal_remove }, - { &vop_rename_desc, (vop_t *) portal_rename }, - { &vop_revoke_desc, (vop_t *) portal_revoke }, - { &vop_rmdir_desc, (vop_t *) portal_rmdir }, - { &vop_seek_desc, (vop_t *) portal_seek }, + { &vop_seek_desc, (vop_t *) nullop }, { &vop_setattr_desc, (vop_t *) portal_setattr }, - { &vop_strategy_desc, (vop_t *) portal_strategy }, - { &vop_symlink_desc, (vop_t *) portal_symlink }, - { &vop_truncate_desc, (vop_t *) portal_truncate }, - { &vop_unlock_desc, (vop_t *) portal_unlock }, - { &vop_update_desc, (vop_t *) portal_update }, - { &vop_valloc_desc, (vop_t *) portal_valloc }, - { &vop_vfree_desc, (vop_t *) portal_vfree }, - { &vop_write_desc, (vop_t *) portal_write }, + { &vop_unlock_desc, (vop_t *) vop_nounlock }, { NULL, NULL } }; static struct vnodeopv_desc portal_vnodeop_opv_desc = diff --git a/sys/fs/procfs/procfs_vnops.c b/sys/fs/procfs/procfs_vnops.c index 443d89feb732..ab62a4d801d1 100644 --- a/sys/fs/procfs/procfs_vnops.c +++ b/sys/fs/procfs/procfs_vnops.c @@ -36,7 +36,7 @@ * * @(#)procfs_vnops.c 8.18 (Berkeley) 5/21/95 * - * $Id: procfs_vnops.c,v 1.34 1997/10/15 09:21:19 phk Exp $ + * $Id: procfs_vnops.c,v 1.35 1997/10/15 10:04:38 phk Exp $ */ /* @@ -936,33 +936,6 @@ atopid(b, len) return (p); } -#define procfs_create ((int (*) __P((struct vop_create_args *))) procfs_badop) -#define procfs_mknod ((int (*) __P((struct vop_mknod_args *))) procfs_badop) -#define procfs_read procfs_rw -#define procfs_write procfs_rw -#define procfs_mmap ((int (*) __P((struct vop_mmap_args *))) procfs_badop) -#define procfs_poll vop_nopoll -#define procfs_revoke vop_revoke -#define procfs_fsync ((int (*) __P((struct vop_fsync_args *))) procfs_badop) -#define procfs_seek ((int (*) __P((struct vop_seek_args *))) procfs_badop) -#define procfs_remove ((int (*) __P((struct vop_remove_args *))) procfs_badop) -#define procfs_link ((int (*) __P((struct vop_link_args *))) procfs_badop) -#define procfs_rename ((int (*) __P((struct vop_rename_args *))) procfs_badop) -#define procfs_mkdir ((int (*) __P((struct vop_mkdir_args *))) procfs_badop) -#define procfs_rmdir ((int (*) __P((struct vop_rmdir_args *))) procfs_badop) -#define procfs_symlink ((int (*) __P((struct vop_symlink_args *))) procfs_badop) -#define procfs_lock ((int (*) __P((struct vop_lock_args *)))vop_nolock) -#define procfs_unlock ((int (*) __P((struct vop_unlock_args *)))vop_nounlock) -#define procfs_strategy ((int (*) __P((struct vop_strategy_args *))) procfs_badop) -#define procfs_islocked \ - ((int (*) __P((struct vop_islocked_args *)))vop_noislocked) -#define procfs_advlock ((int (*) __P((struct vop_advlock_args *))) procfs_badop) -#define procfs_blkatoff ((int (*) __P((struct vop_blkatoff_args *))) procfs_badop) -#define procfs_valloc ((int (*) __P((struct vop_valloc_args *))) procfs_badop) -#define procfs_vfree ((int (*) __P((struct vop_vfree_args *))) nullop) -#define procfs_truncate ((int (*) __P((struct vop_truncate_args *))) procfs_badop) -#define procfs_update ((int (*) __P((struct vop_update_args *))) nullop) - /* * procfs vnode operations. */ @@ -971,44 +944,36 @@ static struct vnodeopv_entry_desc procfs_vnodeop_entries[] = { { &vop_default_desc, (vop_t *) vn_default_error }, { &vop_abortop_desc, (vop_t *) procfs_abortop }, { &vop_access_desc, (vop_t *) procfs_access }, - { &vop_advlock_desc, (vop_t *) procfs_advlock }, - { &vop_blkatoff_desc, (vop_t *) procfs_blkatoff }, + { &vop_advlock_desc, (vop_t *) procfs_badop }, { &vop_bmap_desc, (vop_t *) procfs_bmap }, { &vop_close_desc, (vop_t *) procfs_close }, - { &vop_create_desc, (vop_t *) procfs_create }, - { &vop_fsync_desc, (vop_t *) procfs_fsync }, + { &vop_create_desc, (vop_t *) procfs_badop }, { &vop_getattr_desc, (vop_t *) procfs_getattr }, { &vop_inactive_desc, (vop_t *) procfs_inactive }, { &vop_ioctl_desc, (vop_t *) procfs_ioctl }, - { &vop_islocked_desc, (vop_t *) procfs_islocked }, - { &vop_link_desc, (vop_t *) procfs_link }, - { &vop_lock_desc, (vop_t *) procfs_lock }, + { &vop_islocked_desc, (vop_t *) vop_noislocked }, + { &vop_link_desc, (vop_t *) procfs_badop }, + { &vop_lock_desc, (vop_t *) vop_nolock }, { &vop_lookup_desc, (vop_t *) procfs_lookup }, - { &vop_mkdir_desc, (vop_t *) procfs_mkdir }, - { &vop_mknod_desc, (vop_t *) procfs_mknod }, - { &vop_mmap_desc, (vop_t *) procfs_mmap }, + { &vop_mkdir_desc, (vop_t *) procfs_badop }, + { &vop_mknod_desc, (vop_t *) procfs_badop }, + { &vop_mmap_desc, (vop_t *) procfs_badop }, { &vop_open_desc, (vop_t *) procfs_open }, { &vop_pathconf_desc, (vop_t *) procfs_pathconf }, - { &vop_poll_desc, (vop_t *) procfs_poll }, { &vop_print_desc, (vop_t *) procfs_print }, - { &vop_read_desc, (vop_t *) procfs_read }, + { &vop_read_desc, (vop_t *) procfs_rw }, { &vop_readdir_desc, (vop_t *) procfs_readdir }, { &vop_readlink_desc, (vop_t *) procfs_readlink }, { &vop_reclaim_desc, (vop_t *) procfs_reclaim }, - { &vop_remove_desc, (vop_t *) procfs_remove }, - { &vop_rename_desc, (vop_t *) procfs_rename }, - { &vop_revoke_desc, (vop_t *) procfs_revoke }, - { &vop_rmdir_desc, (vop_t *) procfs_rmdir }, - { &vop_seek_desc, (vop_t *) procfs_seek }, + { &vop_remove_desc, (vop_t *) procfs_badop }, + { &vop_rename_desc, (vop_t *) procfs_badop }, + { &vop_rmdir_desc, (vop_t *) procfs_badop }, + { &vop_seek_desc, (vop_t *) procfs_badop }, { &vop_setattr_desc, (vop_t *) procfs_setattr }, - { &vop_strategy_desc, (vop_t *) procfs_strategy }, - { &vop_symlink_desc, (vop_t *) procfs_symlink }, - { &vop_truncate_desc, (vop_t *) procfs_truncate }, - { &vop_unlock_desc, (vop_t *) procfs_unlock }, - { &vop_update_desc, (vop_t *) procfs_update }, - { &vop_valloc_desc, (vop_t *) procfs_valloc }, - { &vop_vfree_desc, (vop_t *) procfs_vfree }, - { &vop_write_desc, (vop_t *) procfs_write }, + { &vop_symlink_desc, (vop_t *) procfs_badop }, + { &vop_unlock_desc, (vop_t *) vop_nounlock }, + { &vop_update_desc, (vop_t *) nullop }, + { &vop_write_desc, (vop_t *) procfs_rw }, { NULL, NULL } }; static struct vnodeopv_desc procfs_vnodeop_opv_desc = diff --git a/sys/fs/specfs/spec_vnops.c b/sys/fs/specfs/spec_vnops.c index 73361c28cbe0..12a9f29f4eae 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.45 1997/10/15 10:04:43 phk Exp $ + * $Id: spec_vnops.c,v 1.46 1997/10/15 13:23:18 phk Exp $ */ #include <sys/param.h> @@ -81,12 +81,9 @@ 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_badop }, { &vop_access_desc, (vop_t *) spec_ebadf }, { &vop_advlock_desc, (vop_t *) spec_advlock }, - { &vop_blkatoff_desc, (vop_t *) spec_badop }, { &vop_bmap_desc, (vop_t *) spec_bmap }, - { &vop_bwrite_desc, (vop_t *) nullop }, { &vop_close_desc, (vop_t *) spec_close }, { &vop_create_desc, (vop_t *) spec_badop }, { &vop_fsync_desc, (vop_t *) spec_fsync }, @@ -113,17 +110,13 @@ static struct vnodeopv_entry_desc spec_vnodeop_entries[] = { { &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_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 } }; @@ -480,7 +473,7 @@ spec_poll(ap) dev = ap->a_vp->v_rdev; return (*cdevsw[major(dev)]->d_poll)(dev, ap->a_events, ap->a_p); default: - return (vop_nopoll(ap)); + return (vn_defaultop((struct vop_generic_args *)ap)); } } diff --git a/sys/gnu/ext2fs/ext2_alloc.c b/sys/gnu/ext2fs/ext2_alloc.c index 64e9b87180da..f78b6a5fa8be 100644 --- a/sys/gnu/ext2fs/ext2_alloc.c +++ b/sys/gnu/ext2fs/ext2_alloc.c @@ -56,6 +56,7 @@ #include <ufs/ufs/quota.h> #include <ufs/ufs/inode.h> +#include <ufs/ufs/ufsmount.h> #include <gnu/ext2fs/ext2_fs.h> #include <gnu/ext2fs/ext2_fs_sb.h> @@ -383,26 +384,22 @@ fail: * ext2_new_inode(), to make sure we get the policies right */ int -ext2_valloc(ap) - struct vop_valloc_args /* { - struct vnode *a_pvp; - int a_mode; - struct ucred *a_cred; - struct vnode **a_vpp; - } */ *ap; +ext2_valloc(pvp, mode, cred, vpp) + struct vnode *pvp; + int mode; + struct ucred *cred; + struct vnode **vpp; { - register struct vnode *pvp = ap->a_pvp; register struct inode *pip; register struct ext2_sb_info *fs; register struct inode *ip; - mode_t mode = ap->a_mode; ino_t ino; int i, error; #if !defined(__FreeBSD__) struct timeval time; #endif - *ap->a_vpp = NULL; + *vpp = NULL; pip = VTOI(pvp); fs = pip->i_e2fs; if (fs->s_es->s_free_inodes_count == 0) @@ -413,12 +410,12 @@ ext2_valloc(ap) if (ino == 0) goto noinodes; - error = VFS_VGET(pvp->v_mount, ino, ap->a_vpp); + error = VFS_VGET(pvp->v_mount, ino, vpp); if (error) { - VOP_VFREE(pvp, ino, mode); + UFS_VFREE(pvp, ino, mode); return (error); } - ip = VTOI(*ap->a_vpp); + ip = VTOI(*vpp); /* the question is whether using VGET was such good idea at all - @@ -448,7 +445,7 @@ printf("ext2_valloc: allocated inode %d\n", ino); */ return (0); noinodes: - ext2_fserr(fs, ap->a_cred->cr_uid, "out of inodes"); + ext2_fserr(fs, cred->cr_uid, "out of inodes"); uprintf("\n%s: create/symlink failed, no inodes free\n", fs->fs_fsmnt); return (ENOSPC); } @@ -525,25 +522,21 @@ ext2_blkfree(ip, bno, size) * the maintenance of the actual bitmaps is again up to the linux code */ int -ext2_vfree(ap) - struct vop_vfree_args /* { - struct vnode *a_pvp; - ino_t a_ino; - int a_mode; - } */ *ap; +ext2_vfree(pvp, ino, mode) + struct vnode *pvp; + ino_t ino; + int mode; { register struct ext2_sb_info *fs; register struct inode *pip; - ino_t ino = ap->a_ino; - int mode; - pip = VTOI(ap->a_pvp); + pip = VTOI(pvp); fs = pip->i_e2fs; if ((u_int)ino >= fs->s_inodes_per_group * fs->s_groups_count) panic("ifree: range: dev = 0x%x, ino = %d, fs = %s", pip->i_dev, ino, fs->fs_fsmnt); -/* ext2_debug("ext2_vfree (%d, %d) called\n", pip->i_number, ap->a_mode); +/* ext2_debug("ext2_vfree (%d, %d) called\n", pip->i_number, mode); */ ext2_discard_prealloc(pip); @@ -553,7 +546,7 @@ ext2_vfree(ap) 'set i_mode to zero to denote an unused inode' is */ mode = pip->i_mode; - pip->i_mode = ap->a_mode; + pip->i_mode = mode; ext2_free_inode(pip); pip->i_mode = mode; return (0); diff --git a/sys/gnu/ext2fs/ext2_extern.h b/sys/gnu/ext2fs/ext2_extern.h index 4c327993f5e9..b185f5209956 100644 --- a/sys/gnu/ext2fs/ext2_extern.h +++ b/sys/gnu/ext2fs/ext2_extern.h @@ -53,7 +53,7 @@ int ext2_alloc __P((struct inode *, daddr_t, daddr_t, int, struct ucred *, daddr_t *)); int ext2_balloc __P((struct inode *, daddr_t, int, struct ucred *, struct buf **, int)); -int ext2_blkatoff __P((struct vop_blkatoff_args *)); +int ext2_blkatoff __P((struct vnode *, off_t, char **, struct buf **)); void ext2_blkfree __P((struct inode *, daddr_t, long)); daddr_t ext2_blkpref __P((struct inode *, daddr_t, int, daddr_t *, daddr_t)); int ext2_bmap __P((struct vop_bmap_args *)); @@ -61,10 +61,10 @@ int ext2_init __P((struct vfsconf *)); int ext2_reallocblks __P((struct vop_reallocblks_args *)); int ext2_reclaim __P((struct vop_reclaim_args *)); void ext2_setblock __P((struct ext2_sb_info *, u_char *, daddr_t)); -int ext2_truncate __P((struct vop_truncate_args *)); +int ext2_truncate __P((struct vnode *, off_t, int, struct ucred *, struct proc *)); int ext2_update __P((struct vop_update_args *)); -int ext2_valloc __P((struct vop_valloc_args *)); -int ext2_vfree __P((struct vop_vfree_args *)); +int ext2_valloc __P((struct vnode *, int, struct ucred *, struct vnode **)); +int ext2_vfree __P((struct vnode *, ino_t, int)); int ext2_lookup __P((struct vop_cachedlookup_args *)); int ext2_readdir __P((struct vop_readdir_args *)); void ext2_print_dinode __P((struct dinode *)); diff --git a/sys/gnu/ext2fs/ext2_inode.c b/sys/gnu/ext2fs/ext2_inode.c index bc2b1e688daf..05140227d57e 100644 --- a/sys/gnu/ext2fs/ext2_inode.c +++ b/sys/gnu/ext2fs/ext2_inode.c @@ -156,21 +156,18 @@ ext2_update(ap) * disk blocks. */ int -ext2_truncate(ap) - struct vop_truncate_args /* { - struct vnode *a_vp; - off_t a_length; - int a_flags; - struct ucred *a_cred; - struct proc *a_p; - } */ *ap; +ext2_truncate(vp, length, flags, cred, p) + struct vnode *vp; + off_t length; + int flags; + struct ucred *cred; + struct proc *p; { - register struct vnode *ovp = ap->a_vp; + register struct vnode *ovp = vp; register daddr_t lastblock; register struct inode *oip; daddr_t bn, lbn, lastiblock[NIADDR], indir_lbn[NIADDR]; daddr_t oldblks[NDADDR + NIADDR], newblks[NDADDR + NIADDR]; - off_t length = ap->a_length; register struct ext2_sb_info *fs; struct buf *bp; int offset, size, level; @@ -180,7 +177,7 @@ ext2_truncate(ap) int aflags, error, allerror; off_t osize; /* -printf("ext2_truncate called %d to %d\n", VTOI(ovp)->i_number, ap->a_length); +printf("ext2_truncate called %d to %d\n", VTOI(ovp)->i_number, length); */ /* * negative file sizes will totally break the code below and * are not meaningful anyways. @@ -221,10 +218,10 @@ printf("ext2_truncate called %d to %d\n", VTOI(ovp)->i_number, ap->a_length); offset = blkoff(fs, length - 1); lbn = lblkno(fs, length - 1); aflags = B_CLRBUF; - if (ap->a_flags & IO_SYNC) + if (flags & IO_SYNC) aflags |= B_SYNC; vnode_pager_setsize(ovp, length); - if (error = ext2_balloc(oip, lbn, offset + 1, ap->a_cred, &bp, + if (error = ext2_balloc(oip, lbn, offset + 1, cred, &bp, aflags)) return (error); oip->i_size = length; @@ -252,9 +249,9 @@ printf("ext2_truncate called %d to %d\n", VTOI(ovp)->i_number, ap->a_length); } else { lbn = lblkno(fs, length); aflags = B_CLRBUF; - if (ap->a_flags & IO_SYNC) + if (flags & IO_SYNC) aflags |= B_SYNC; - if (error = ext2_balloc(oip, lbn, offset, ap->a_cred, &bp, + if (error = ext2_balloc(oip, lbn, offset, cred, &bp, aflags)) return (error); oip->i_size = length; @@ -307,7 +304,7 @@ printf("ext2_truncate called %d to %d\n", VTOI(ovp)->i_number, ap->a_length); bcopy((caddr_t)oldblks, (caddr_t)&oip->i_db[0], sizeof oldblks); oip->i_size = osize; vflags = ((length > 0) ? V_SAVE : 0) | V_SAVEMETA; - allerror = vinvalbuf(ovp, vflags, ap->a_cred, ap->a_p, 0, 0); + allerror = vinvalbuf(ovp, vflags, cred, p, 0, 0); /* * Indirect blocks first. diff --git a/sys/gnu/ext2fs/ext2_lookup.c b/sys/gnu/ext2fs/ext2_lookup.c index 07991e981974..686e89d9ece6 100644 --- a/sys/gnu/ext2fs/ext2_lookup.c +++ b/sys/gnu/ext2fs/ext2_lookup.c @@ -349,7 +349,7 @@ ext2_lookup(ap) } else { dp->i_offset = dp->i_diroff; if ((entryoffsetinblock = dp->i_offset & bmask) && - (error = VOP_BLKATOFF(vdp, (off_t)dp->i_offset, NULL, &bp))) + (error = UFS_BLKATOFF(vdp, (off_t)dp->i_offset, NULL, &bp))) return (error); numdirpasses = 2; nchstats.ncs_2passes++; @@ -367,7 +367,7 @@ searchloop: if (bp != NULL) brelse(bp); if (error = - VOP_BLKATOFF(vdp, (off_t)dp->i_offset, NULL, &bp)) + UFS_BLKATOFF(vdp, (off_t)dp->i_offset, NULL, &bp)) return (error); entryoffsetinblock = 0; } @@ -802,7 +802,7 @@ ext2_direnter(ip, dvp, cnp) /* * Get the block containing the space for the new directory entry. */ - if (error = VOP_BLKATOFF(dvp, (off_t)dp->i_offset, &dirbuf, &bp)) + if (error = UFS_BLKATOFF(dvp, (off_t)dp->i_offset, &dirbuf, &bp)) return (error); /* * Find space for the new entry. In the simple case, the entry at @@ -848,7 +848,7 @@ ext2_direnter(ip, dvp, cnp) error = VOP_BWRITE(bp); dp->i_flag |= IN_CHANGE | IN_UPDATE; if (!error && dp->i_endoff && dp->i_endoff < dp->i_size) - error = VOP_TRUNCATE(dvp, (off_t)dp->i_endoff, IO_SYNC, + error = UFS_TRUNCATE(dvp, (off_t)dp->i_endoff, IO_SYNC, cnp->cn_cred, cnp->cn_proc); return (error); } @@ -881,7 +881,7 @@ ext2_dirremove(dvp, cnp) * First entry in block: set d_ino to zero. */ if (error = - VOP_BLKATOFF(dvp, (off_t)dp->i_offset, (char **)&ep, &bp)) + UFS_BLKATOFF(dvp, (off_t)dp->i_offset, (char **)&ep, &bp)) return (error); ep->inode = 0; error = VOP_BWRITE(bp); @@ -891,7 +891,7 @@ ext2_dirremove(dvp, cnp) /* * Collapse new free space into previous entry. */ - if (error = VOP_BLKATOFF(dvp, (off_t)(dp->i_offset - dp->i_count), + if (error = UFS_BLKATOFF(dvp, (off_t)(dp->i_offset - dp->i_count), (char **)&ep, &bp)) return (error); ep->rec_len += dp->i_reclen; @@ -915,7 +915,7 @@ ext2_dirrewrite(dp, ip, cnp) struct vnode *vdp = ITOV(dp); int error; - if (error = VOP_BLKATOFF(vdp, (off_t)dp->i_offset, (char **)&ep, &bp)) + if (error = UFS_BLKATOFF(vdp, (off_t)dp->i_offset, (char **)&ep, &bp)) return (error); ep->inode = ip->i_number; error = VOP_BWRITE(bp); diff --git a/sys/gnu/ext2fs/ext2_mount.h b/sys/gnu/ext2fs/ext2_mount.h index d57dd59c8936..50bfe575f51e 100644 --- a/sys/gnu/ext2fs/ext2_mount.h +++ b/sys/gnu/ext2fs/ext2_mount.h @@ -31,7 +31,7 @@ * SUCH DAMAGE. * * @(#)ufsmount.h 8.6 (Berkeley) 3/30/95 - * $Id: ufsmount.h,v 1.9 1997/10/10 18:18:13 phk Exp $ + * $Id: ufsmount.h,v 1.10 1997/10/12 20:26:28 phk Exp $ */ #ifndef _UFS_UFS_UFSMOUNT_H_ @@ -97,8 +97,17 @@ struct ufsmount { struct netexport um_export; /* export information */ int64_t um_savedmaxfilesize; /* XXX - limit maxfilesize */ struct malloc_type *um_malloctype; /* The inodes malloctype */ + int (*um_blkatoff) __P((struct vnode *, off_t, char **, struct buf **)); + int (*um_truncate) __P((struct vnode *, off_t, int, struct ucred *, struct proc *)); + int (*um_valloc) __P((struct vnode *, int, struct ucred *, struct vnode **)); + int (*um_vfree) __P((struct vnode *, ino_t, int)); }; +#define UFS_BLKATOFF(aa, bb, cc, dd) VFSTOUFS((aa)->v_mount)->um_blkatoff(aa, bb, cc, dd) +#define UFS_TRUNCATE(aa, bb, cc, dd, ee) VFSTOUFS((aa)->v_mount)->um_truncate(aa, bb, cc, dd, ee) +#define UFS_VALLOC(aa, bb, cc, dd) VFSTOUFS((aa)->v_mount)->um_valloc(aa, bb, cc, dd) +#define UFS_VFREE(aa, bb, cc) VFSTOUFS((aa)->v_mount)->um_vfree(aa, bb, cc) + /* * Flags describing the state of quotas. */ diff --git a/sys/gnu/ext2fs/ext2_readwrite.c b/sys/gnu/ext2fs/ext2_readwrite.c index 986bc14e74b9..e1ab5063f53e 100644 --- a/sys/gnu/ext2fs/ext2_readwrite.c +++ b/sys/gnu/ext2fs/ext2_readwrite.c @@ -307,7 +307,7 @@ WRITE(ap) ip->i_mode &= ~(ISUID | ISGID); if (error) { if (ioflag & IO_UNIT) { - (void)VOP_TRUNCATE(vp, osize, + (void)UFS_TRUNCATE(vp, osize, ioflag & IO_SYNC, ap->a_cred, uio->uio_procp); uio->uio_offset -= resid - uio->uio_resid; uio->uio_resid = resid; diff --git a/sys/gnu/ext2fs/ext2_subr.c b/sys/gnu/ext2fs/ext2_subr.c index 399f973bbf9f..8083b96d6346 100644 --- a/sys/gnu/ext2fs/ext2_subr.c +++ b/sys/gnu/ext2fs/ext2_subr.c @@ -56,13 +56,11 @@ * remaining space in the directory. */ int -ext2_blkatoff(ap) - struct vop_blkatoff_args /* { - struct vnode *a_vp; - off_t a_offset; - char **a_res; - struct buf **a_bpp; - } */ *ap; +ext2_blkatoff(vp, offset, res, bpp) + struct vnode *vp; + off_t offset; + char **res; + struct buf **bpp; { struct inode *ip; register struct ext2_sb_info *fs; @@ -70,19 +68,19 @@ ext2_blkatoff(ap) daddr_t lbn; int bsize, error; - ip = VTOI(ap->a_vp); + ip = VTOI(vp); fs = ip->i_e2fs; - lbn = lblkno(fs, ap->a_offset); + lbn = lblkno(fs, offset); bsize = blksize(fs, ip, lbn); - *ap->a_bpp = NULL; - if (error = bread(ap->a_vp, lbn, bsize, NOCRED, &bp)) { + *bpp = NULL; + if (error = bread(vp, lbn, bsize, NOCRED, &bp)) { brelse(bp); return (error); } - if (ap->a_res) - *ap->a_res = (char *)bp->b_data + blkoff(fs, ap->a_offset); - *ap->a_bpp = bp; + if (res) + *res = (char *)bp->b_data + blkoff(fs, offset); + *bpp = bp; return (0); } diff --git a/sys/gnu/ext2fs/ext2_vfsops.c b/sys/gnu/ext2fs/ext2_vfsops.c index 9338279dcfbb..95ffa52b74a1 100644 --- a/sys/gnu/ext2fs/ext2_vfsops.c +++ b/sys/gnu/ext2fs/ext2_vfsops.c @@ -621,6 +621,10 @@ ext2_mountfs(devvp, mp, p) ump = bsd_malloc(sizeof *ump, M_UFSMNT, M_WAITOK); bzero((caddr_t)ump, sizeof *ump); ump->um_malloctype = M_EXT2NODE; + ump->um_blkatoff = ext2_blkatoff; + ump->um_truncate = ext2_truncate; + ump->um_valloc = ext2_valloc; + ump->um_vfree = ext2_vfree; /* I don't know whether this is the right strategy. Note that we dynamically allocate both a ext2_sb_info and a ext2_super_block while Linux keeps the super block in a locked buffer diff --git a/sys/gnu/ext2fs/ext2_vnops.c b/sys/gnu/ext2fs/ext2_vnops.c index 97225aab1d86..48b59074acbb 100644 --- a/sys/gnu/ext2fs/ext2_vnops.c +++ b/sys/gnu/ext2fs/ext2_vnops.c @@ -69,6 +69,7 @@ #endif #include <ufs/ufs/quota.h> #include <ufs/ufs/inode.h> +#include <ufs/ufs/ufsmount.h> #include <ufs/ufs/ufs_extern.h> #include <ufs/ffs/ffs_extern.h> @@ -84,17 +85,13 @@ static int ext2_write __P((struct vop_write_args *)); vop_t **ext2_vnodeop_p; static struct vnodeopv_entry_desc ext2_vnodeop_entries[] = { { &vop_default_desc, (vop_t *) ufs_vnoperate }, - { &vop_blkatoff_desc, (vop_t *) ext2_blkatoff }, { &vop_cachedlookup_desc, (vop_t *) ext2_lookup }, { &vop_fsync_desc, (vop_t *) ext2_fsync }, { &vop_inactive_desc, (vop_t *) ext2_inactive }, { &vop_read_desc, (vop_t *) ext2_read }, { &vop_readdir_desc, (vop_t *) ext2_readdir }, { &vop_reallocblks_desc, (vop_t *) ext2_reallocblks }, - { &vop_truncate_desc, (vop_t *) ext2_truncate }, { &vop_update_desc, (vop_t *) ext2_update }, - { &vop_valloc_desc, (vop_t *) ext2_valloc }, - { &vop_vfree_desc, (vop_t *) ext2_vfree }, { &vop_write_desc, (vop_t *) ext2_write }, { NULL, NULL } }; @@ -107,7 +104,6 @@ static struct vnodeopv_entry_desc ext2_specop_entries[] = { { &vop_fsync_desc, (vop_t *) ext2_fsync }, { &vop_inactive_desc, (vop_t *) ext2_inactive }, { &vop_update_desc, (vop_t *) ext2_update }, - { &vop_vfree_desc, (vop_t *) ext2_vfree }, { NULL, NULL } }; static struct vnodeopv_desc ext2fs_specop_opv_desc = @@ -119,7 +115,6 @@ static struct vnodeopv_entry_desc ext2_fifoop_entries[] = { { &vop_fsync_desc, (vop_t *) ext2_fsync }, { &vop_inactive_desc, (vop_t *) ext2_inactive }, { &vop_update_desc, (vop_t *) ext2_update }, - { &vop_vfree_desc, (vop_t *) ext2_vfree }, { NULL, NULL } }; static struct vnodeopv_desc ext2fs_fifoop_opv_desc = diff --git a/sys/gnu/fs/ext2fs/ext2_alloc.c b/sys/gnu/fs/ext2fs/ext2_alloc.c index 64e9b87180da..f78b6a5fa8be 100644 --- a/sys/gnu/fs/ext2fs/ext2_alloc.c +++ b/sys/gnu/fs/ext2fs/ext2_alloc.c @@ -56,6 +56,7 @@ #include <ufs/ufs/quota.h> #include <ufs/ufs/inode.h> +#include <ufs/ufs/ufsmount.h> #include <gnu/ext2fs/ext2_fs.h> #include <gnu/ext2fs/ext2_fs_sb.h> @@ -383,26 +384,22 @@ fail: * ext2_new_inode(), to make sure we get the policies right */ int -ext2_valloc(ap) - struct vop_valloc_args /* { - struct vnode *a_pvp; - int a_mode; - struct ucred *a_cred; - struct vnode **a_vpp; - } */ *ap; +ext2_valloc(pvp, mode, cred, vpp) + struct vnode *pvp; + int mode; + struct ucred *cred; + struct vnode **vpp; { - register struct vnode *pvp = ap->a_pvp; register struct inode *pip; register struct ext2_sb_info *fs; register struct inode *ip; - mode_t mode = ap->a_mode; ino_t ino; int i, error; #if !defined(__FreeBSD__) struct timeval time; #endif - *ap->a_vpp = NULL; + *vpp = NULL; pip = VTOI(pvp); fs = pip->i_e2fs; if (fs->s_es->s_free_inodes_count == 0) @@ -413,12 +410,12 @@ ext2_valloc(ap) if (ino == 0) goto noinodes; - error = VFS_VGET(pvp->v_mount, ino, ap->a_vpp); + error = VFS_VGET(pvp->v_mount, ino, vpp); if (error) { - VOP_VFREE(pvp, ino, mode); + UFS_VFREE(pvp, ino, mode); return (error); } - ip = VTOI(*ap->a_vpp); + ip = VTOI(*vpp); /* the question is whether using VGET was such good idea at all - @@ -448,7 +445,7 @@ printf("ext2_valloc: allocated inode %d\n", ino); */ return (0); noinodes: - ext2_fserr(fs, ap->a_cred->cr_uid, "out of inodes"); + ext2_fserr(fs, cred->cr_uid, "out of inodes"); uprintf("\n%s: create/symlink failed, no inodes free\n", fs->fs_fsmnt); return (ENOSPC); } @@ -525,25 +522,21 @@ ext2_blkfree(ip, bno, size) * the maintenance of the actual bitmaps is again up to the linux code */ int -ext2_vfree(ap) - struct vop_vfree_args /* { - struct vnode *a_pvp; - ino_t a_ino; - int a_mode; - } */ *ap; +ext2_vfree(pvp, ino, mode) + struct vnode *pvp; + ino_t ino; + int mode; { register struct ext2_sb_info *fs; register struct inode *pip; - ino_t ino = ap->a_ino; - int mode; - pip = VTOI(ap->a_pvp); + pip = VTOI(pvp); fs = pip->i_e2fs; if ((u_int)ino >= fs->s_inodes_per_group * fs->s_groups_count) panic("ifree: range: dev = 0x%x, ino = %d, fs = %s", pip->i_dev, ino, fs->fs_fsmnt); -/* ext2_debug("ext2_vfree (%d, %d) called\n", pip->i_number, ap->a_mode); +/* ext2_debug("ext2_vfree (%d, %d) called\n", pip->i_number, mode); */ ext2_discard_prealloc(pip); @@ -553,7 +546,7 @@ ext2_vfree(ap) 'set i_mode to zero to denote an unused inode' is */ mode = pip->i_mode; - pip->i_mode = ap->a_mode; + pip->i_mode = mode; ext2_free_inode(pip); pip->i_mode = mode; return (0); diff --git a/sys/gnu/fs/ext2fs/ext2_extern.h b/sys/gnu/fs/ext2fs/ext2_extern.h index 4c327993f5e9..b185f5209956 100644 --- a/sys/gnu/fs/ext2fs/ext2_extern.h +++ b/sys/gnu/fs/ext2fs/ext2_extern.h @@ -53,7 +53,7 @@ int ext2_alloc __P((struct inode *, daddr_t, daddr_t, int, struct ucred *, daddr_t *)); int ext2_balloc __P((struct inode *, daddr_t, int, struct ucred *, struct buf **, int)); -int ext2_blkatoff __P((struct vop_blkatoff_args *)); +int ext2_blkatoff __P((struct vnode *, off_t, char **, struct buf **)); void ext2_blkfree __P((struct inode *, daddr_t, long)); daddr_t ext2_blkpref __P((struct inode *, daddr_t, int, daddr_t *, daddr_t)); int ext2_bmap __P((struct vop_bmap_args *)); @@ -61,10 +61,10 @@ int ext2_init __P((struct vfsconf *)); int ext2_reallocblks __P((struct vop_reallocblks_args *)); int ext2_reclaim __P((struct vop_reclaim_args *)); void ext2_setblock __P((struct ext2_sb_info *, u_char *, daddr_t)); -int ext2_truncate __P((struct vop_truncate_args *)); +int ext2_truncate __P((struct vnode *, off_t, int, struct ucred *, struct proc *)); int ext2_update __P((struct vop_update_args *)); -int ext2_valloc __P((struct vop_valloc_args *)); -int ext2_vfree __P((struct vop_vfree_args *)); +int ext2_valloc __P((struct vnode *, int, struct ucred *, struct vnode **)); +int ext2_vfree __P((struct vnode *, ino_t, int)); int ext2_lookup __P((struct vop_cachedlookup_args *)); int ext2_readdir __P((struct vop_readdir_args *)); void ext2_print_dinode __P((struct dinode *)); diff --git a/sys/gnu/fs/ext2fs/ext2_inode.c b/sys/gnu/fs/ext2fs/ext2_inode.c index bc2b1e688daf..05140227d57e 100644 --- a/sys/gnu/fs/ext2fs/ext2_inode.c +++ b/sys/gnu/fs/ext2fs/ext2_inode.c @@ -156,21 +156,18 @@ ext2_update(ap) * disk blocks. */ int -ext2_truncate(ap) - struct vop_truncate_args /* { - struct vnode *a_vp; - off_t a_length; - int a_flags; - struct ucred *a_cred; - struct proc *a_p; - } */ *ap; +ext2_truncate(vp, length, flags, cred, p) + struct vnode *vp; + off_t length; + int flags; + struct ucred *cred; + struct proc *p; { - register struct vnode *ovp = ap->a_vp; + register struct vnode *ovp = vp; register daddr_t lastblock; register struct inode *oip; daddr_t bn, lbn, lastiblock[NIADDR], indir_lbn[NIADDR]; daddr_t oldblks[NDADDR + NIADDR], newblks[NDADDR + NIADDR]; - off_t length = ap->a_length; register struct ext2_sb_info *fs; struct buf *bp; int offset, size, level; @@ -180,7 +177,7 @@ ext2_truncate(ap) int aflags, error, allerror; off_t osize; /* -printf("ext2_truncate called %d to %d\n", VTOI(ovp)->i_number, ap->a_length); +printf("ext2_truncate called %d to %d\n", VTOI(ovp)->i_number, length); */ /* * negative file sizes will totally break the code below and * are not meaningful anyways. @@ -221,10 +218,10 @@ printf("ext2_truncate called %d to %d\n", VTOI(ovp)->i_number, ap->a_length); offset = blkoff(fs, length - 1); lbn = lblkno(fs, length - 1); aflags = B_CLRBUF; - if (ap->a_flags & IO_SYNC) + if (flags & IO_SYNC) aflags |= B_SYNC; vnode_pager_setsize(ovp, length); - if (error = ext2_balloc(oip, lbn, offset + 1, ap->a_cred, &bp, + if (error = ext2_balloc(oip, lbn, offset + 1, cred, &bp, aflags)) return (error); oip->i_size = length; @@ -252,9 +249,9 @@ printf("ext2_truncate called %d to %d\n", VTOI(ovp)->i_number, ap->a_length); } else { lbn = lblkno(fs, length); aflags = B_CLRBUF; - if (ap->a_flags & IO_SYNC) + if (flags & IO_SYNC) aflags |= B_SYNC; - if (error = ext2_balloc(oip, lbn, offset, ap->a_cred, &bp, + if (error = ext2_balloc(oip, lbn, offset, cred, &bp, aflags)) return (error); oip->i_size = length; @@ -307,7 +304,7 @@ printf("ext2_truncate called %d to %d\n", VTOI(ovp)->i_number, ap->a_length); bcopy((caddr_t)oldblks, (caddr_t)&oip->i_db[0], sizeof oldblks); oip->i_size = osize; vflags = ((length > 0) ? V_SAVE : 0) | V_SAVEMETA; - allerror = vinvalbuf(ovp, vflags, ap->a_cred, ap->a_p, 0, 0); + allerror = vinvalbuf(ovp, vflags, cred, p, 0, 0); /* * Indirect blocks first. diff --git a/sys/gnu/fs/ext2fs/ext2_lookup.c b/sys/gnu/fs/ext2fs/ext2_lookup.c index 07991e981974..686e89d9ece6 100644 --- a/sys/gnu/fs/ext2fs/ext2_lookup.c +++ b/sys/gnu/fs/ext2fs/ext2_lookup.c @@ -349,7 +349,7 @@ ext2_lookup(ap) } else { dp->i_offset = dp->i_diroff; if ((entryoffsetinblock = dp->i_offset & bmask) && - (error = VOP_BLKATOFF(vdp, (off_t)dp->i_offset, NULL, &bp))) + (error = UFS_BLKATOFF(vdp, (off_t)dp->i_offset, NULL, &bp))) return (error); numdirpasses = 2; nchstats.ncs_2passes++; @@ -367,7 +367,7 @@ searchloop: if (bp != NULL) brelse(bp); if (error = - VOP_BLKATOFF(vdp, (off_t)dp->i_offset, NULL, &bp)) + UFS_BLKATOFF(vdp, (off_t)dp->i_offset, NULL, &bp)) return (error); entryoffsetinblock = 0; } @@ -802,7 +802,7 @@ ext2_direnter(ip, dvp, cnp) /* * Get the block containing the space for the new directory entry. */ - if (error = VOP_BLKATOFF(dvp, (off_t)dp->i_offset, &dirbuf, &bp)) + if (error = UFS_BLKATOFF(dvp, (off_t)dp->i_offset, &dirbuf, &bp)) return (error); /* * Find space for the new entry. In the simple case, the entry at @@ -848,7 +848,7 @@ ext2_direnter(ip, dvp, cnp) error = VOP_BWRITE(bp); dp->i_flag |= IN_CHANGE | IN_UPDATE; if (!error && dp->i_endoff && dp->i_endoff < dp->i_size) - error = VOP_TRUNCATE(dvp, (off_t)dp->i_endoff, IO_SYNC, + error = UFS_TRUNCATE(dvp, (off_t)dp->i_endoff, IO_SYNC, cnp->cn_cred, cnp->cn_proc); return (error); } @@ -881,7 +881,7 @@ ext2_dirremove(dvp, cnp) * First entry in block: set d_ino to zero. */ if (error = - VOP_BLKATOFF(dvp, (off_t)dp->i_offset, (char **)&ep, &bp)) + UFS_BLKATOFF(dvp, (off_t)dp->i_offset, (char **)&ep, &bp)) return (error); ep->inode = 0; error = VOP_BWRITE(bp); @@ -891,7 +891,7 @@ ext2_dirremove(dvp, cnp) /* * Collapse new free space into previous entry. */ - if (error = VOP_BLKATOFF(dvp, (off_t)(dp->i_offset - dp->i_count), + if (error = UFS_BLKATOFF(dvp, (off_t)(dp->i_offset - dp->i_count), (char **)&ep, &bp)) return (error); ep->rec_len += dp->i_reclen; @@ -915,7 +915,7 @@ ext2_dirrewrite(dp, ip, cnp) struct vnode *vdp = ITOV(dp); int error; - if (error = VOP_BLKATOFF(vdp, (off_t)dp->i_offset, (char **)&ep, &bp)) + if (error = UFS_BLKATOFF(vdp, (off_t)dp->i_offset, (char **)&ep, &bp)) return (error); ep->inode = ip->i_number; error = VOP_BWRITE(bp); diff --git a/sys/gnu/fs/ext2fs/ext2_mount.h b/sys/gnu/fs/ext2fs/ext2_mount.h index d57dd59c8936..50bfe575f51e 100644 --- a/sys/gnu/fs/ext2fs/ext2_mount.h +++ b/sys/gnu/fs/ext2fs/ext2_mount.h @@ -31,7 +31,7 @@ * SUCH DAMAGE. * * @(#)ufsmount.h 8.6 (Berkeley) 3/30/95 - * $Id: ufsmount.h,v 1.9 1997/10/10 18:18:13 phk Exp $ + * $Id: ufsmount.h,v 1.10 1997/10/12 20:26:28 phk Exp $ */ #ifndef _UFS_UFS_UFSMOUNT_H_ @@ -97,8 +97,17 @@ struct ufsmount { struct netexport um_export; /* export information */ int64_t um_savedmaxfilesize; /* XXX - limit maxfilesize */ struct malloc_type *um_malloctype; /* The inodes malloctype */ + int (*um_blkatoff) __P((struct vnode *, off_t, char **, struct buf **)); + int (*um_truncate) __P((struct vnode *, off_t, int, struct ucred *, struct proc *)); + int (*um_valloc) __P((struct vnode *, int, struct ucred *, struct vnode **)); + int (*um_vfree) __P((struct vnode *, ino_t, int)); }; +#define UFS_BLKATOFF(aa, bb, cc, dd) VFSTOUFS((aa)->v_mount)->um_blkatoff(aa, bb, cc, dd) +#define UFS_TRUNCATE(aa, bb, cc, dd, ee) VFSTOUFS((aa)->v_mount)->um_truncate(aa, bb, cc, dd, ee) +#define UFS_VALLOC(aa, bb, cc, dd) VFSTOUFS((aa)->v_mount)->um_valloc(aa, bb, cc, dd) +#define UFS_VFREE(aa, bb, cc) VFSTOUFS((aa)->v_mount)->um_vfree(aa, bb, cc) + /* * Flags describing the state of quotas. */ diff --git a/sys/gnu/fs/ext2fs/ext2_readwrite.c b/sys/gnu/fs/ext2fs/ext2_readwrite.c index 986bc14e74b9..e1ab5063f53e 100644 --- a/sys/gnu/fs/ext2fs/ext2_readwrite.c +++ b/sys/gnu/fs/ext2fs/ext2_readwrite.c @@ -307,7 +307,7 @@ WRITE(ap) ip->i_mode &= ~(ISUID | ISGID); if (error) { if (ioflag & IO_UNIT) { - (void)VOP_TRUNCATE(vp, osize, + (void)UFS_TRUNCATE(vp, osize, ioflag & IO_SYNC, ap->a_cred, uio->uio_procp); uio->uio_offset -= resid - uio->uio_resid; uio->uio_resid = resid; diff --git a/sys/gnu/fs/ext2fs/ext2_subr.c b/sys/gnu/fs/ext2fs/ext2_subr.c index 399f973bbf9f..8083b96d6346 100644 --- a/sys/gnu/fs/ext2fs/ext2_subr.c +++ b/sys/gnu/fs/ext2fs/ext2_subr.c @@ -56,13 +56,11 @@ * remaining space in the directory. */ int -ext2_blkatoff(ap) - struct vop_blkatoff_args /* { - struct vnode *a_vp; - off_t a_offset; - char **a_res; - struct buf **a_bpp; - } */ *ap; +ext2_blkatoff(vp, offset, res, bpp) + struct vnode *vp; + off_t offset; + char **res; + struct buf **bpp; { struct inode *ip; register struct ext2_sb_info *fs; @@ -70,19 +68,19 @@ ext2_blkatoff(ap) daddr_t lbn; int bsize, error; - ip = VTOI(ap->a_vp); + ip = VTOI(vp); fs = ip->i_e2fs; - lbn = lblkno(fs, ap->a_offset); + lbn = lblkno(fs, offset); bsize = blksize(fs, ip, lbn); - *ap->a_bpp = NULL; - if (error = bread(ap->a_vp, lbn, bsize, NOCRED, &bp)) { + *bpp = NULL; + if (error = bread(vp, lbn, bsize, NOCRED, &bp)) { brelse(bp); return (error); } - if (ap->a_res) - *ap->a_res = (char *)bp->b_data + blkoff(fs, ap->a_offset); - *ap->a_bpp = bp; + if (res) + *res = (char *)bp->b_data + blkoff(fs, offset); + *bpp = bp; return (0); } diff --git a/sys/gnu/fs/ext2fs/ext2_vfsops.c b/sys/gnu/fs/ext2fs/ext2_vfsops.c index 9338279dcfbb..95ffa52b74a1 100644 --- a/sys/gnu/fs/ext2fs/ext2_vfsops.c +++ b/sys/gnu/fs/ext2fs/ext2_vfsops.c @@ -621,6 +621,10 @@ ext2_mountfs(devvp, mp, p) ump = bsd_malloc(sizeof *ump, M_UFSMNT, M_WAITOK); bzero((caddr_t)ump, sizeof *ump); ump->um_malloctype = M_EXT2NODE; + ump->um_blkatoff = ext2_blkatoff; + ump->um_truncate = ext2_truncate; + ump->um_valloc = ext2_valloc; + ump->um_vfree = ext2_vfree; /* I don't know whether this is the right strategy. Note that we dynamically allocate both a ext2_sb_info and a ext2_super_block while Linux keeps the super block in a locked buffer diff --git a/sys/gnu/fs/ext2fs/ext2_vnops.c b/sys/gnu/fs/ext2fs/ext2_vnops.c index 97225aab1d86..48b59074acbb 100644 --- a/sys/gnu/fs/ext2fs/ext2_vnops.c +++ b/sys/gnu/fs/ext2fs/ext2_vnops.c @@ -69,6 +69,7 @@ #endif #include <ufs/ufs/quota.h> #include <ufs/ufs/inode.h> +#include <ufs/ufs/ufsmount.h> #include <ufs/ufs/ufs_extern.h> #include <ufs/ffs/ffs_extern.h> @@ -84,17 +85,13 @@ static int ext2_write __P((struct vop_write_args *)); vop_t **ext2_vnodeop_p; static struct vnodeopv_entry_desc ext2_vnodeop_entries[] = { { &vop_default_desc, (vop_t *) ufs_vnoperate }, - { &vop_blkatoff_desc, (vop_t *) ext2_blkatoff }, { &vop_cachedlookup_desc, (vop_t *) ext2_lookup }, { &vop_fsync_desc, (vop_t *) ext2_fsync }, { &vop_inactive_desc, (vop_t *) ext2_inactive }, { &vop_read_desc, (vop_t *) ext2_read }, { &vop_readdir_desc, (vop_t *) ext2_readdir }, { &vop_reallocblks_desc, (vop_t *) ext2_reallocblks }, - { &vop_truncate_desc, (vop_t *) ext2_truncate }, { &vop_update_desc, (vop_t *) ext2_update }, - { &vop_valloc_desc, (vop_t *) ext2_valloc }, - { &vop_vfree_desc, (vop_t *) ext2_vfree }, { &vop_write_desc, (vop_t *) ext2_write }, { NULL, NULL } }; @@ -107,7 +104,6 @@ static struct vnodeopv_entry_desc ext2_specop_entries[] = { { &vop_fsync_desc, (vop_t *) ext2_fsync }, { &vop_inactive_desc, (vop_t *) ext2_inactive }, { &vop_update_desc, (vop_t *) ext2_update }, - { &vop_vfree_desc, (vop_t *) ext2_vfree }, { NULL, NULL } }; static struct vnodeopv_desc ext2fs_specop_opv_desc = @@ -119,7 +115,6 @@ static struct vnodeopv_entry_desc ext2_fifoop_entries[] = { { &vop_fsync_desc, (vop_t *) ext2_fsync }, { &vop_inactive_desc, (vop_t *) ext2_inactive }, { &vop_update_desc, (vop_t *) ext2_update }, - { &vop_vfree_desc, (vop_t *) ext2_vfree }, { NULL, NULL } }; static struct vnodeopv_desc ext2fs_fifoop_opv_desc = diff --git a/sys/isofs/cd9660/cd9660_lookup.c b/sys/isofs/cd9660/cd9660_lookup.c index d416a985d96c..cf36e9221ae3 100644 --- a/sys/isofs/cd9660/cd9660_lookup.c +++ b/sys/isofs/cd9660/cd9660_lookup.c @@ -38,7 +38,7 @@ * from: @(#)ufs_lookup.c 7.33 (Berkeley) 5/19/91 * * @(#)cd9660_lookup.c 8.2 (Berkeley) 1/23/94 - * $Id: cd9660_lookup.c,v 1.17 1997/08/26 07:32:30 phk Exp $ + * $Id: cd9660_lookup.c,v 1.18 1997/09/10 19:43:15 phk Exp $ */ #include <sys/param.h> @@ -165,7 +165,7 @@ cd9660_lookup(ap) } else { dp->i_offset = dp->i_diroff; if ((entryoffsetinblock = dp->i_offset & bmask) && - (error = VOP_BLKATOFF(vdp, (off_t)dp->i_offset, NULL, &bp))) + (error = cd9660_blkatoff(vdp, (off_t)dp->i_offset, NULL, &bp))) return (error); numdirpasses = 2; nchstats.ncs_2passes++; @@ -183,7 +183,7 @@ searchloop: if (bp != NULL) brelse(bp); if (error = - VOP_BLKATOFF(vdp, (off_t)dp->i_offset, NULL, &bp)) + cd9660_blkatoff(vdp, (off_t)dp->i_offset, NULL, &bp)) return (error); entryoffsetinblock = 0; } @@ -280,7 +280,7 @@ foundino: lblkno(imp, saveoffset)) { if (bp != NULL) brelse(bp); - if (error = VOP_BLKATOFF(vdp, + if (error = cd9660_blkatoff(vdp, (off_t)saveoffset, NULL, &bp)) return (error); } @@ -394,13 +394,11 @@ found: * remaining space in the directory. */ int -cd9660_blkatoff(ap) - struct vop_blkatoff_args /* { - struct vnode *a_vp; - off_t a_offset; - char **a_res; - struct buf **a_bpp; - } */ *ap; +cd9660_blkatoff(vp, offset, res, bpp) + struct vnode *vp; + off_t offset; + char **res; + struct buf **bpp; { struct iso_node *ip; register struct iso_mnt *imp; @@ -408,18 +406,18 @@ cd9660_blkatoff(ap) daddr_t lbn; int bsize, error; - ip = VTOI(ap->a_vp); + ip = VTOI(vp); imp = ip->i_mnt; - lbn = lblkno(imp, ap->a_offset); + lbn = lblkno(imp, offset); bsize = blksize(imp, ip, lbn); - if (error = bread(ap->a_vp, lbn, bsize, NOCRED, &bp)) { + if (error = bread(vp, lbn, bsize, NOCRED, &bp)) { brelse(bp); - *ap->a_bpp = NULL; + *bpp = NULL; return (error); } - if (ap->a_res) - *ap->a_res = (char *)bp->b_data + blkoff(imp, ap->a_offset); - *ap->a_bpp = bp; + if (res) + *res = (char *)bp->b_data + blkoff(imp, offset); + *bpp = bp; return (0); } diff --git a/sys/isofs/cd9660/cd9660_node.c b/sys/isofs/cd9660/cd9660_node.c index 8db9633dd230..0ac56f8ab8c6 100644 --- a/sys/isofs/cd9660/cd9660_node.c +++ b/sys/isofs/cd9660/cd9660_node.c @@ -36,7 +36,7 @@ * SUCH DAMAGE. * * @(#)cd9660_node.c 8.2 (Berkeley) 1/23/94 - * $Id: cd9660_node.c,v 1.19 1997/04/14 18:15:45 phk Exp $ + * $Id: cd9660_node.c,v 1.20 1997/08/02 14:31:18 bde Exp $ */ #include <sys/param.h> @@ -241,7 +241,7 @@ cd9660_defattr(isodir, inop, bp, ftype) if (!bp && ((imp = inop->i_mnt)->im_flags & ISOFSMNT_EXTATT) && (off = isonum_711(isodir->ext_attr_length))) { - VOP_BLKATOFF(ITOV(inop), (off_t)-(off << imp->im_bshift), NULL, + cd9660_blkatoff(ITOV(inop), (off_t)-(off << imp->im_bshift), NULL, &bp2); bp = bp2; } @@ -293,7 +293,7 @@ cd9660_deftstamp(isodir,inop,bp,ftype) if (!bp && ((imp = inop->i_mnt)->im_flags & ISOFSMNT_EXTATT) && (off = isonum_711(isodir->ext_attr_length))) { - VOP_BLKATOFF(ITOV(inop), (off_t)-(off << imp->im_bshift), NULL, + cd9660_blkatoff(ITOV(inop), (off_t)-(off << imp->im_bshift), NULL, &bp2); bp = bp2; } diff --git a/sys/isofs/cd9660/cd9660_node.h b/sys/isofs/cd9660/cd9660_node.h index 92e214f07bec..5c0b72166b8d 100644 --- a/sys/isofs/cd9660/cd9660_node.h +++ b/sys/isofs/cd9660/cd9660_node.h @@ -36,7 +36,7 @@ * SUCH DAMAGE. * * @(#)cd9660_node.h 8.6 (Berkeley) 5/14/95 - * $Id: cd9660_node.h,v 1.12 1997/08/26 07:32:31 phk Exp $ + * $Id: cd9660_node.h,v 1.13 1997/10/12 20:23:36 phk Exp $ */ /* @@ -105,8 +105,7 @@ int cd9660_inactive __P((struct vop_inactive_args *)); int cd9660_reclaim __P((struct vop_reclaim_args *)); int cd9660_bmap __P((struct vop_bmap_args *)); int cd9660_pathconf __P((struct vop_pathconf_args *)); -int cd9660_blkatoff __P((struct vop_blkatoff_args *)); -#define cd9660_revoke vop_revoke +int cd9660_blkatoff __P((struct vnode *vp, off_t offset, char **res, struct buf **bpp)); void cd9660_defattr __P((struct iso_directory_record *, struct iso_node *, struct buf *, enum ISO_FTYPE)); diff --git a/sys/isofs/cd9660/cd9660_vfsops.c b/sys/isofs/cd9660/cd9660_vfsops.c index 3d23f09bd330..d3db4a1da0ac 100644 --- a/sys/isofs/cd9660/cd9660_vfsops.c +++ b/sys/isofs/cd9660/cd9660_vfsops.c @@ -36,7 +36,7 @@ * SUCH DAMAGE. * * @(#)cd9660_vfsops.c 8.18 (Berkeley) 5/22/95 - * $Id: cd9660_vfsops.c,v 1.29 1997/09/27 13:38:48 kato Exp $ + * $Id: cd9660_vfsops.c,v 1.30 1997/10/12 20:23:38 phk Exp $ */ #include <sys/param.h> @@ -765,7 +765,7 @@ cd9660_vget_internal(mp, ino, vpp, relocated, isodir) ip->iso_start = ino >> imp->im_bshift; if (bp != 0) brelse(bp); - if (error = VOP_BLKATOFF(vp, (off_t)0, NULL, &bp)) { + if (error = cd9660_blkatoff(vp, (off_t)0, NULL, &bp)) { vput(vp); return (error); } @@ -787,7 +787,7 @@ cd9660_vget_internal(mp, ino, vpp, relocated, isodir) int off; if ((imp->im_flags & ISOFSMNT_EXTATT) && (off = isonum_711(isodir->ext_attr_length))) - VOP_BLKATOFF(vp, (off_t)-(off << imp->im_bshift), NULL, + cd9660_blkatoff(vp, (off_t)-(off << imp->im_bshift), NULL, &bp2); else bp2 = NULL; diff --git a/sys/isofs/cd9660/cd9660_vnops.c b/sys/isofs/cd9660/cd9660_vnops.c index 607d7d683efd..b794436451fb 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.42 1997/10/15 10:03:58 phk Exp $ + * $Id: cd9660_vnops.c,v 1.43 1997/10/15 13:22:39 phk Exp $ */ #include <sys/param.h> @@ -569,7 +569,7 @@ cd9660_readdir(ap) idp->curroff = uio->uio_offset; if ((entryoffsetinblock = idp->curroff & bmask) && - (error = VOP_BLKATOFF(vdp, (off_t)idp->curroff, NULL, &bp))) { + (error = cd9660_blkatoff(vdp, (off_t)idp->curroff, NULL, &bp))) { FREE(idp, M_TEMP); return (error); } @@ -585,7 +585,7 @@ cd9660_readdir(ap) if (bp != NULL) brelse(bp); if (error = - VOP_BLKATOFF(vdp, (off_t)idp->curroff, NULL, &bp)) + cd9660_blkatoff(vdp, (off_t)idp->curroff, NULL, &bp)) break; entryoffsetinblock = 0; } @@ -953,44 +953,6 @@ cd9660_pathconf(ap) } /* - * Global vfs data structures for isofs - */ -#define cd9660_create \ - ((int (*) __P((struct vop_create_args *)))eopnotsupp) -#define cd9660_mknod ((int (*) __P((struct vop_mknod_args *)))eopnotsupp) -#define cd9660_write ((int (*) __P((struct vop_write_args *)))eopnotsupp) -#ifdef NFS -#define cd9660_lease_check lease_check -#else -#define cd9660_lease_check ((int (*) __P((struct vop_lease_args *)))nullop) -#endif -#define cd9660_poll vop_nopoll -#define cd9660_fsync ((int (*) __P((struct vop_fsync_args *)))nullop) -#define cd9660_remove \ - ((int (*) __P((struct vop_remove_args *)))eopnotsupp) -#define cd9660_link ((int (*) __P((struct vop_link_args *)))eopnotsupp) -#define cd9660_rename \ - ((int (*) __P((struct vop_rename_args *)))eopnotsupp) -#define cd9660_mkdir ((int (*) __P((struct vop_mkdir_args *)))eopnotsupp) -#define cd9660_rmdir ((int (*) __P((struct vop_rmdir_args *)))eopnotsupp) -#define cd9660_symlink \ - ((int (*) __P((struct vop_symlink_args *)))eopnotsupp) -#define cd9660_advlock \ - ((int (*) __P((struct vop_advlock_args *)))eopnotsupp) -#define cd9660_valloc ((int(*) __P(( \ - struct vnode *pvp, \ - int mode, \ - struct ucred *cred, \ - struct vnode **vpp))) eopnotsupp) -#define cd9660_vfree ((int (*) __P((struct vop_vfree_args *)))eopnotsupp) -#define cd9660_truncate \ - ((int (*) __P((struct vop_truncate_args *)))eopnotsupp) -#define cd9660_update \ - ((int (*) __P((struct vop_update_args *)))eopnotsupp) -#define cd9660_bwrite \ - ((int (*) __P((struct vop_bwrite_args *)))eopnotsupp) - -/* * Global vfs data structures for cd9660 */ vop_t **cd9660_vnodeop_p; @@ -998,47 +960,28 @@ struct vnodeopv_entry_desc cd9660_vnodeop_entries[] = { { &vop_default_desc, (vop_t *) vn_default_error }, { &vop_abortop_desc, (vop_t *) cd9660_abortop }, { &vop_access_desc, (vop_t *) cd9660_access }, - { &vop_advlock_desc, (vop_t *) cd9660_advlock }, - { &vop_blkatoff_desc, (vop_t *) cd9660_blkatoff }, { &vop_bmap_desc, (vop_t *) cd9660_bmap }, - { &vop_bwrite_desc, (vop_t *) vn_bwrite }, { &vop_cachedlookup_desc, (vop_t *) cd9660_lookup }, { &vop_close_desc, (vop_t *) cd9660_close }, - { &vop_create_desc, (vop_t *) cd9660_create }, - { &vop_fsync_desc, (vop_t *) cd9660_fsync }, + { &vop_fsync_desc, (vop_t *) nullop }, { &vop_getattr_desc, (vop_t *) cd9660_getattr }, { &vop_inactive_desc, (vop_t *) cd9660_inactive }, { &vop_ioctl_desc, (vop_t *) cd9660_ioctl }, { &vop_islocked_desc, (vop_t *) cd9660_islocked }, - { &vop_lease_desc, (vop_t *) cd9660_lease_check }, - { &vop_link_desc, (vop_t *) cd9660_link }, { &vop_lock_desc, (vop_t *) cd9660_lock }, { &vop_lookup_desc, (vop_t *) vfs_cache_lookup }, - { &vop_mkdir_desc, (vop_t *) cd9660_mkdir }, - { &vop_mknod_desc, (vop_t *) cd9660_mknod }, { &vop_mmap_desc, (vop_t *) cd9660_mmap }, { &vop_open_desc, (vop_t *) cd9660_open }, { &vop_pathconf_desc, (vop_t *) cd9660_pathconf }, - { &vop_poll_desc, (vop_t *) cd9660_poll }, { &vop_print_desc, (vop_t *) cd9660_print }, { &vop_read_desc, (vop_t *) cd9660_read }, { &vop_readdir_desc, (vop_t *) cd9660_readdir }, { &vop_readlink_desc, (vop_t *) cd9660_readlink }, { &vop_reclaim_desc, (vop_t *) cd9660_reclaim }, - { &vop_remove_desc, (vop_t *) cd9660_remove }, - { &vop_rename_desc, (vop_t *) cd9660_rename }, - { &vop_revoke_desc, (vop_t *) cd9660_revoke }, - { &vop_rmdir_desc, (vop_t *) cd9660_rmdir }, { &vop_seek_desc, (vop_t *) cd9660_seek }, { &vop_setattr_desc, (vop_t *) cd9660_setattr }, { &vop_strategy_desc, (vop_t *) cd9660_strategy }, - { &vop_symlink_desc, (vop_t *) cd9660_symlink }, - { &vop_truncate_desc, (vop_t *) cd9660_truncate }, { &vop_unlock_desc, (vop_t *) cd9660_unlock }, - { &vop_update_desc, (vop_t *) cd9660_update }, - { &vop_valloc_desc, (vop_t *) cd9660_valloc }, - { &vop_vfree_desc, (vop_t *) cd9660_vfree }, - { &vop_write_desc, (vop_t *) cd9660_write }, { NULL, NULL } }; static struct vnodeopv_desc cd9660_vnodeop_opv_desc = @@ -1052,7 +995,6 @@ vop_t **cd9660_specop_p; struct vnodeopv_entry_desc cd9660_specop_entries[] = { { &vop_default_desc, (vop_t *) spec_vnoperate }, { &vop_access_desc, (vop_t *) cd9660_access }, - { &vop_bwrite_desc, (vop_t *) vn_bwrite }, { &vop_getattr_desc, (vop_t *) cd9660_getattr }, { &vop_inactive_desc, (vop_t *) cd9660_inactive }, { &vop_islocked_desc, (vop_t *) cd9660_islocked }, @@ -1061,7 +1003,6 @@ struct vnodeopv_entry_desc cd9660_specop_entries[] = { { &vop_reclaim_desc, (vop_t *) cd9660_reclaim }, { &vop_setattr_desc, (vop_t *) cd9660_setattr }, { &vop_unlock_desc, (vop_t *) cd9660_unlock }, - { &vop_update_desc, (vop_t *) cd9660_update }, { NULL, NULL } }; static struct vnodeopv_desc cd9660_specop_opv_desc = @@ -1072,7 +1013,6 @@ vop_t **cd9660_fifoop_p; struct vnodeopv_entry_desc cd9660_fifoop_entries[] = { { &vop_default_desc, (vop_t *) fifo_vnoperate }, { &vop_access_desc, (vop_t *) cd9660_access }, - { &vop_bwrite_desc, (vop_t *) vn_bwrite }, { &vop_getattr_desc, (vop_t *) cd9660_getattr }, { &vop_inactive_desc, (vop_t *) cd9660_inactive }, { &vop_islocked_desc, (vop_t *) cd9660_islocked }, @@ -1081,7 +1021,6 @@ struct vnodeopv_entry_desc cd9660_fifoop_entries[] = { { &vop_reclaim_desc, (vop_t *) cd9660_reclaim }, { &vop_setattr_desc, (vop_t *) cd9660_setattr }, { &vop_unlock_desc, (vop_t *) cd9660_unlock }, - { &vop_update_desc, (vop_t *) cd9660_update }, { 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 49cd2f3fc0c6..3d76d4ffec00 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.33 1997/09/24 15:54:10 phk Exp $ + * $Id: vfs_cache.c,v 1.34 1997/10/15 13:22:52 phk Exp $ */ #include <sys/param.h> @@ -450,6 +450,5 @@ vfs_cache_lookup(ap) error = vn_lock(pdp, LK_EXCLUSIVE, p); if (error) return (error); - return (VCALL(vdp, VOFFSET(vop_cachedlookup), - (struct vop_cachedlookup_args *)ap)); + return (VOP_CACHEDLOOKUP(ap->a_dvp, ap->a_vpp, ap->a_cnp)); } diff --git a/sys/kern/vfs_init.c b/sys/kern/vfs_init.c index 03bd9a6f13f7..febde5efaf31 100644 --- a/sys/kern/vfs_init.c +++ b/sys/kern/vfs_init.c @@ -36,7 +36,7 @@ * SUCH DAMAGE. * * @(#)vfs_init.c 8.3 (Berkeley) 1/4/94 - * $Id: vfs_init.c,v 1.28 1997/09/21 04:22:59 dyson Exp $ + * $Id: vfs_init.c,v 1.29 1997/10/12 20:24:24 phk Exp $ */ @@ -80,17 +80,6 @@ extern struct vnodeop_desc *vfs_op_descs[]; struct vm_zone *namei_zone; /* - * A miscellaneous routine. - * A generic "default" routine that just returns an error. - */ -int -vn_default_error() -{ - - return (EOPNOTSUPP); -} - -/* * vfs_init.c * * Allocate and fill in operations vectors. @@ -283,6 +272,8 @@ vfsinit(dummy) /* * This goop is here to support a loadable NFS module... grumble... + * + * XXX: NFS could plug this into default_vnodeop_p now! */ int (*lease_check_hook) __P((struct vop_lease_args *)) = 0; diff --git a/sys/kern/vnode_if.src b/sys/kern/vnode_if.src index f22908c51c33..c91c9f34756c 100644 --- a/sys/kern/vnode_if.src +++ b/sys/kern/vnode_if.src @@ -31,7 +31,7 @@ # SUCH DAMAGE. # # @(#)vnode_if.src 8.12 (Berkeley) 5/14/95 -# $Id: vnode_if.src,v 1.12 1997/08/25 20:28:49 phk Exp $ +# $Id: vnode_if.src,v 1.13 1997/09/14 02:35:25 peter Exp $ # # @@ -440,26 +440,6 @@ vop_advlock { }; # -#% blkatoff vp L L L -# -vop_blkatoff { - IN struct vnode *vp; - IN off_t offset; - OUT char **res; - OUT struct buf **bpp; -}; - -# -#% valloc pvp L L L -# -vop_valloc { - IN struct vnode *pvp; - IN int mode; - IN struct ucred *cred; - OUT struct vnode **vpp; -}; - -# #% reallocblks vp L L L # vop_reallocblks { @@ -468,26 +448,6 @@ vop_reallocblks { }; # -#% vfree pvp L L L -# -vop_vfree { - IN struct vnode *pvp; - IN ino_t ino; - IN int mode; -}; - -# -#% truncate vp L L L -# -vop_truncate { - IN struct vnode *vp; - IN off_t length; - IN int flags; - IN struct ucred *cred; - IN struct proc *p; -}; - -# #% update vp L L L # vop_update { diff --git a/sys/miscfs/deadfs/dead_vnops.c b/sys/miscfs/deadfs/dead_vnops.c index 43b531a7891c..3c411307ae0c 100644 --- a/sys/miscfs/deadfs/dead_vnops.c +++ b/sys/miscfs/deadfs/dead_vnops.c @@ -31,7 +31,7 @@ * SUCH DAMAGE. * * @(#)dead_vnops.c 8.1 (Berkeley) 6/10/93 - * $Id: dead_vnops.c,v 1.16 1997/10/15 09:20:50 phk Exp $ + * $Id: dead_vnops.c,v 1.17 1997/10/15 10:04:03 phk Exp $ */ #include <sys/param.h> @@ -47,88 +47,48 @@ static int chkvnlock __P((struct vnode *)); static int dead_badop __P((void)); static int dead_ebadf __P((void)); static int dead_lookup __P((struct vop_lookup_args *)); -#define dead_create ((int (*) __P((struct vop_create_args *)))dead_badop) -#define dead_mknod ((int (*) __P((struct vop_mknod_args *)))dead_badop) static int dead_open __P((struct vop_open_args *)); -#define dead_close ((int (*) __P((struct vop_close_args *)))nullop) -#define dead_access ((int (*) __P((struct vop_access_args *)))dead_ebadf) -#define dead_getattr ((int (*) __P((struct vop_getattr_args *)))dead_ebadf) -#define dead_setattr ((int (*) __P((struct vop_setattr_args *)))dead_ebadf) static int dead_read __P((struct vop_read_args *)); static int dead_write __P((struct vop_write_args *)); static int dead_ioctl __P((struct vop_ioctl_args *)); -#define dead_poll vop_nopoll -#define dead_mmap ((int (*) __P((struct vop_mmap_args *)))dead_badop) -#define dead_fsync ((int (*) __P((struct vop_fsync_args *)))nullop) -#define dead_seek ((int (*) __P((struct vop_seek_args *)))nullop) -#define dead_remove ((int (*) __P((struct vop_remove_args *)))dead_badop) -#define dead_link ((int (*) __P((struct vop_link_args *)))dead_badop) -#define dead_rename ((int (*) __P((struct vop_rename_args *)))dead_badop) -#define dead_mkdir ((int (*) __P((struct vop_mkdir_args *)))dead_badop) -#define dead_rmdir ((int (*) __P((struct vop_rmdir_args *)))dead_badop) -#define dead_symlink ((int (*) __P((struct vop_symlink_args *)))dead_badop) -#define dead_readdir ((int (*) __P((struct vop_readdir_args *)))dead_ebadf) -#define dead_readlink ((int (*) __P((struct vop_readlink_args *)))dead_ebadf) -#define dead_abortop ((int (*) __P((struct vop_abortop_args *)))dead_badop) -#define dead_inactive ((int (*) __P((struct vop_inactive_args *)))nullop) -#define dead_reclaim ((int (*) __P((struct vop_reclaim_args *)))nullop) static int dead_lock __P((struct vop_lock_args *)); -#define dead_unlock ((int (*) __P((struct vop_unlock_args *)))vop_nounlock) static int dead_bmap __P((struct vop_bmap_args *)); -static int dead_strategy __P((struct vop_strategy_args *)); static int dead_print __P((struct vop_print_args *)); -#define dead_islocked ((int(*) __P((struct vop_islocked_args *)))vop_noislocked) -#define dead_pathconf ((int (*) __P((struct vop_pathconf_args *)))dead_ebadf) -#define dead_advlock ((int (*) __P((struct vop_advlock_args *)))dead_ebadf) -#define dead_blkatoff ((int (*) __P((struct vop_blkatoff_args *)))dead_badop) -#define dead_valloc ((int (*) __P((struct vop_valloc_args *)))dead_badop) -#define dead_vfree ((int (*) __P((struct vop_vfree_args *)))dead_badop) -#define dead_truncate ((int (*) __P((struct vop_truncate_args *)))nullop) -#define dead_update ((int (*) __P((struct vop_update_args *)))nullop) -#define dead_bwrite ((int (*) __P((struct vop_bwrite_args *)))nullop) vop_t **dead_vnodeop_p; static struct vnodeopv_entry_desc dead_vnodeop_entries[] = { { &vop_default_desc, (vop_t *) vn_default_error }, - { &vop_abortop_desc, (vop_t *) dead_abortop }, - { &vop_access_desc, (vop_t *) dead_access }, - { &vop_advlock_desc, (vop_t *) dead_advlock }, - { &vop_blkatoff_desc, (vop_t *) dead_blkatoff }, + { &vop_access_desc, (vop_t *) dead_ebadf }, + { &vop_advlock_desc, (vop_t *) dead_ebadf }, { &vop_bmap_desc, (vop_t *) dead_bmap }, - { &vop_bwrite_desc, (vop_t *) dead_bwrite }, - { &vop_close_desc, (vop_t *) dead_close }, - { &vop_create_desc, (vop_t *) dead_create }, - { &vop_fsync_desc, (vop_t *) dead_fsync }, - { &vop_getattr_desc, (vop_t *) dead_getattr }, - { &vop_inactive_desc, (vop_t *) dead_inactive }, + { &vop_close_desc, (vop_t *) nullop }, + { &vop_create_desc, (vop_t *) dead_badop }, + { &vop_fsync_desc, (vop_t *) nullop }, + { &vop_getattr_desc, (vop_t *) dead_ebadf }, + { &vop_inactive_desc, (vop_t *) nullop }, { &vop_ioctl_desc, (vop_t *) dead_ioctl }, - { &vop_islocked_desc, (vop_t *) dead_islocked }, - { &vop_link_desc, (vop_t *) dead_link }, + { &vop_islocked_desc, (vop_t *) vop_noislocked }, + { &vop_link_desc, (vop_t *) dead_badop }, { &vop_lock_desc, (vop_t *) dead_lock }, { &vop_lookup_desc, (vop_t *) dead_lookup }, - { &vop_mkdir_desc, (vop_t *) dead_mkdir }, - { &vop_mknod_desc, (vop_t *) dead_mknod }, - { &vop_mmap_desc, (vop_t *) dead_mmap }, + { &vop_mkdir_desc, (vop_t *) dead_badop }, + { &vop_mknod_desc, (vop_t *) dead_badop }, + { &vop_mmap_desc, (vop_t *) dead_badop }, { &vop_open_desc, (vop_t *) dead_open }, - { &vop_pathconf_desc, (vop_t *) dead_pathconf }, - { &vop_poll_desc, (vop_t *) dead_poll }, + { &vop_pathconf_desc, (vop_t *) dead_ebadf }, { &vop_print_desc, (vop_t *) dead_print }, { &vop_read_desc, (vop_t *) dead_read }, - { &vop_readdir_desc, (vop_t *) dead_readdir }, - { &vop_readlink_desc, (vop_t *) dead_readlink }, - { &vop_reclaim_desc, (vop_t *) dead_reclaim }, - { &vop_remove_desc, (vop_t *) dead_remove }, - { &vop_rename_desc, (vop_t *) dead_rename }, - { &vop_rmdir_desc, (vop_t *) dead_rmdir }, - { &vop_seek_desc, (vop_t *) dead_seek }, - { &vop_setattr_desc, (vop_t *) dead_setattr }, - { &vop_strategy_desc, (vop_t *) dead_strategy }, - { &vop_symlink_desc, (vop_t *) dead_symlink }, - { &vop_truncate_desc, (vop_t *) dead_truncate }, - { &vop_unlock_desc, (vop_t *) dead_unlock }, - { &vop_update_desc, (vop_t *) dead_update }, - { &vop_valloc_desc, (vop_t *) dead_valloc }, - { &vop_vfree_desc, (vop_t *) dead_vfree }, + { &vop_readdir_desc, (vop_t *) dead_ebadf }, + { &vop_readlink_desc, (vop_t *) dead_ebadf }, + { &vop_reclaim_desc, (vop_t *) nullop }, + { &vop_remove_desc, (vop_t *) dead_badop }, + { &vop_rename_desc, (vop_t *) dead_badop }, + { &vop_rmdir_desc, (vop_t *) dead_badop }, + { &vop_seek_desc, (vop_t *) nullop }, + { &vop_setattr_desc, (vop_t *) dead_ebadf }, + { &vop_symlink_desc, (vop_t *) dead_badop }, + { &vop_unlock_desc, (vop_t *) vop_nounlock }, + { &vop_update_desc, (vop_t *) nullop }, { &vop_write_desc, (vop_t *) dead_write }, { NULL, NULL } }; @@ -244,23 +204,6 @@ dead_ioctl(ap) return (VCALL(ap->a_vp, VOFFSET(vop_ioctl), ap)); } -/* - * Just call the device strategy routine - */ -static int -dead_strategy(ap) - struct vop_strategy_args /* { - struct buf *a_bp; - } */ *ap; -{ - - if (ap->a_bp->b_vp == NULL || !chkvnlock(ap->a_bp->b_vp)) { - ap->a_bp->b_flags |= B_ERROR; - biodone(ap->a_bp); - return (EIO); - } - return (VOP_STRATEGY(ap->a_bp)); -} /* * Wait until the vnode has finished changing state. diff --git a/sys/miscfs/devfs/devfs_vnops.c b/sys/miscfs/devfs/devfs_vnops.c index a97b5a9aeace..5ab722ca42e6 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.42 1997/10/15 10:04:08 phk Exp $ + * $Header: /home/ncvs/src/sys/miscfs/devfs/devfs_vnops.c,v 1.43 1997/10/15 13:23:01 phk Exp $ * * symlinks can wait 'til later. */ @@ -1488,20 +1488,6 @@ DBPRINT(("bmap\n")); } static int -devfs_strategy(struct vop_strategy_args *ap) - /*struct vop_strategy_args { - struct buf *a_bp; - } */ -{ -DBPRINT(("strategy\n")); - - if (ap->a_bp->b_vp->v_type == VBLK || ap->a_bp->b_vp->v_type == VCHR) - printf("devfs_strategy: spec"); - return 0; -} - - -static int devfs_advlock(struct vop_advlock_args *ap) /*struct vop_advlock_args { struct vnode *a_vp; @@ -1590,18 +1576,6 @@ devfs_print(struct vop_print_args *ap) return (0); } -static int -devfs_vfree(struct vop_vfree_args *ap) - /*struct vop_vfree_args { - struct vnode *a_pvp; - ino_t a_ino; - int a_mode; - } */ -{ - - return (0); -} - /**************************************************************************\ * pseudo ops * \**************************************************************************/ @@ -1650,68 +1624,24 @@ devfs_dropvnode(dn_p dnp) dnp->vn = NULL; /* be pedantic about this */ } -#define devfs_create ((int (*) __P((struct vop_create_args *)))devfs_enotsupp) -#define devfs_mknod ((int (*) __P((struct vop_mknod_args *)))devfs_enotsupp) -#define devfs_close ((int (*) __P((struct vop_close_args *)))nullop) -#define devfs_ioctl ((int (*) __P((struct vop_ioctl_args *)))devfs_enotsupp) -#define devfs_poll vop_nopoll -#define devfs_mmap ((int (*) __P((struct vop_mmap_args *)))devfs_enotsupp) -#define devfs_fsync ((int (*) __P((struct vop_fsync_args *)))nullop) -#define devfs_seek ((int (*) __P((struct vop_seek_args *)))nullop) -#define devfs_mkdir ((int (*) __P((struct vop_mkdir_args *)))devfs_enotsupp) -#define devfs_rmdir ((int (*) __P((struct vop_rmdir_args *)))devfs_enotsupp) -/* -#define devfs_symlink ((int (*) __P((struct vop_symlink_args *)))devfs_enotsupp) -#define devfs_readlink \ - ((int (*) __P((struct vop_readlink_args *)))devfs_enotsupp) -*/ -#define devfs_abortop ((int (*) __P((struct vop_abortop_args *)))nullop) -#define devfs_lock ((int (*) __P((struct vop_lock_args *)))vop_nolock) -#define devfs_unlock ((int (*) __P((struct vop_unlock_args *)))vop_nounlock) -#define devfs_bmap ((int (*) __P((struct vop_bmap_args *)))devfs_badop) -#define devfs_strategy ((int (*) __P((struct vop_strategy_args *)))devfs_badop) -#define devfs_islocked \ - ((int (*) __P((struct vop_islocked_args *)))vop_noislocked) -#define devfs_advlock ((int (*) __P((struct vop_advlock_args *)))devfs_enotsupp) -#define devfs_blkatoff \ - ((int (*) __P((struct vop_blkatoff_args *)))devfs_enotsupp) -#define devfs_valloc ((int(*) __P(( \ - struct vnode *pvp, \ - int mode, \ - struct ucred *cred, \ - struct vnode **vpp))) devfs_enotsupp) -#define devfs_truncate \ - ((int (*) __P((struct vop_truncate_args *)))devfs_enotsupp) -#define devfs_update ((int (*) __P((struct vop_update_args *)))devfs_enotsupp) -#define devfs_bwrite ((int (*) __P((struct vop_bwrite_args *)))devfs_enotsupp) - /* These are the operations used by directories etc in a devfs */ vop_t **devfs_vnodeop_p; static struct vnodeopv_entry_desc devfs_vnodeop_entries[] = { { &vop_default_desc, (vop_t *) vn_default_error }, - { &vop_abortop_desc, (vop_t *) devfs_abortop }, + { &vop_abortop_desc, (vop_t *) nullop }, { &vop_access_desc, (vop_t *) devfs_access }, - { &vop_advlock_desc, (vop_t *) devfs_advlock }, - { &vop_blkatoff_desc, (vop_t *) devfs_blkatoff }, - { &vop_bmap_desc, (vop_t *) devfs_bmap }, - { &vop_bwrite_desc, (vop_t *) devfs_bwrite }, - { &vop_close_desc, (vop_t *) devfs_close }, - { &vop_create_desc, (vop_t *) devfs_create }, - { &vop_fsync_desc, (vop_t *) devfs_fsync }, + { &vop_bmap_desc, (vop_t *) devfs_badop }, + { &vop_close_desc, (vop_t *) nullop }, + { &vop_fsync_desc, (vop_t *) nullop }, { &vop_getattr_desc, (vop_t *) devfs_getattr }, { &vop_inactive_desc, (vop_t *) devfs_inactive }, - { &vop_ioctl_desc, (vop_t *) devfs_ioctl }, - { &vop_islocked_desc, (vop_t *) devfs_islocked }, + { &vop_islocked_desc, (vop_t *) vop_noislocked }, { &vop_link_desc, (vop_t *) devfs_link }, - { &vop_lock_desc, (vop_t *) devfs_lock }, + { &vop_lock_desc, (vop_t *) vop_nolock }, { &vop_lookup_desc, (vop_t *) devfs_lookup }, - { &vop_mkdir_desc, (vop_t *) devfs_mkdir }, - { &vop_mknod_desc, (vop_t *) devfs_mknod }, - { &vop_mmap_desc, (vop_t *) devfs_mmap }, { &vop_open_desc, (vop_t *) devfs_open }, { &vop_pathconf_desc, (vop_t *) devfs_pathconf }, - { &vop_poll_desc, (vop_t *) devfs_poll }, { &vop_print_desc, (vop_t *) devfs_print }, { &vop_read_desc, (vop_t *) devfs_read }, { &vop_readdir_desc, (vop_t *) devfs_readdir }, @@ -1719,16 +1649,10 @@ static struct vnodeopv_entry_desc devfs_vnodeop_entries[] = { { &vop_reclaim_desc, (vop_t *) devfs_reclaim }, { &vop_remove_desc, (vop_t *) devfs_remove }, { &vop_rename_desc, (vop_t *) devfs_rename }, - { &vop_rmdir_desc, (vop_t *) devfs_rmdir }, - { &vop_seek_desc, (vop_t *) devfs_seek }, + { &vop_seek_desc, (vop_t *) nullop }, { &vop_setattr_desc, (vop_t *) devfs_setattr }, - { &vop_strategy_desc, (vop_t *) devfs_strategy }, { &vop_symlink_desc, (vop_t *) devfs_symlink }, - { &vop_truncate_desc, (vop_t *) devfs_truncate }, - { &vop_unlock_desc, (vop_t *) devfs_unlock }, - { &vop_update_desc, (vop_t *) devfs_update }, - { &vop_valloc_desc, (vop_t *) devfs_valloc }, - { &vop_vfree_desc, (vop_t *) devfs_vfree }, + { &vop_unlock_desc, (vop_t *) vop_nounlock }, { &vop_write_desc, (vop_t *) devfs_write }, { NULL, NULL } }; @@ -1781,7 +1705,6 @@ vop_t **dev_spec_vnodeop_p; static struct vnodeopv_entry_desc dev_spec_vnodeop_entries[] = { { &vop_default_desc, (vop_t *) spec_vnoperate }, { &vop_access_desc, (vop_t *) devfs_access }, - { &vop_bwrite_desc, (vop_t *) vn_bwrite }, { &vop_getattr_desc, (vop_t *) devfs_getattr }, { &vop_read_desc, (vop_t *) devfs_read }, { &vop_reclaim_desc, (vop_t *) devfs_reclaim }, diff --git a/sys/miscfs/fdesc/fdesc_vnops.c b/sys/miscfs/fdesc/fdesc_vnops.c index c3ac29b161ed..7793177e5db2 100644 --- a/sys/miscfs/fdesc/fdesc_vnops.c +++ b/sys/miscfs/fdesc/fdesc_vnops.c @@ -35,7 +35,7 @@ * * @(#)fdesc_vnops.c 8.9 (Berkeley) 1/21/94 * - * $Id: fdesc_vnops.c,v 1.27 1997/10/15 09:20:57 phk Exp $ + * $Id: fdesc_vnops.c,v 1.28 1997/10/15 10:04:12 phk Exp $ */ /* @@ -99,7 +99,6 @@ static int fdesc_readlink __P((struct vop_readlink_args *ap)); static int fdesc_reclaim __P((struct vop_reclaim_args *ap)); static int fdesc_poll __P((struct vop_poll_args *ap)); static int fdesc_setattr __P((struct vop_setattr_args *ap)); -static int fdesc_vfree __P((struct vop_vfree_args *ap)); static int fdesc_write __P((struct vop_write_args *ap)); /* @@ -883,19 +882,6 @@ fdesc_print(ap) return (0); } -/*void*/ -static int -fdesc_vfree(ap) - struct vop_vfree_args /* { - struct vnode *a_pvp; - ino_t a_ino; - int a_mode; - } */ *ap; -{ - - return (0); -} - /* * /dev/fd "should never get here" operation */ @@ -907,61 +893,18 @@ fdesc_badop() /* NOTREACHED */ } -#define fdesc_create ((int (*) __P((struct vop_create_args *)))eopnotsupp) -#define fdesc_mknod ((int (*) __P((struct vop_mknod_args *)))eopnotsupp) -#define fdesc_close ((int (*) __P((struct vop_close_args *)))nullop) -#define fdesc_access ((int (*) __P((struct vop_access_args *)))nullop) -#define fdesc_mmap ((int (*) __P((struct vop_mmap_args *)))eopnotsupp) -#define fdesc_revoke vop_revoke -#define fdesc_fsync ((int (*) __P((struct vop_fsync_args *)))nullop) -#define fdesc_seek ((int (*) __P((struct vop_seek_args *)))nullop) -#define fdesc_remove ((int (*) __P((struct vop_remove_args *)))eopnotsupp) -#define fdesc_link ((int (*) __P((struct vop_link_args *)))eopnotsupp) -#define fdesc_rename ((int (*) __P((struct vop_rename_args *)))eopnotsupp) -#define fdesc_mkdir ((int (*) __P((struct vop_mkdir_args *)))eopnotsupp) -#define fdesc_rmdir ((int (*) __P((struct vop_rmdir_args *)))eopnotsupp) -#define fdesc_symlink ((int (*) __P((struct vop_symlink_args *)))eopnotsupp) -#define fdesc_abortop ((int (*) __P((struct vop_abortop_args *)))nullop) -#define fdesc_lock ((int (*) __P((struct vop_lock_args *)))vop_nolock) -#define fdesc_unlock ((int (*) __P((struct vop_unlock_args *)))vop_nounlock) -#define fdesc_bmap ((int (*) __P((struct vop_bmap_args *)))fdesc_badop) -#define fdesc_strategy ((int (*) __P((struct vop_strategy_args *)))fdesc_badop) -#define fdesc_islocked \ - ((int (*) __P((struct vop_islocked_args *)))vop_noislocked) -#define fdesc_advlock ((int (*) __P((struct vop_advlock_args *)))eopnotsupp) -#define fdesc_blkatoff \ - ((int (*) __P((struct vop_blkatoff_args *)))eopnotsupp) -#define fdesc_valloc ((int(*) __P(( \ - struct vnode *pvp, \ - int mode, \ - struct ucred *cred, \ - struct vnode **vpp))) eopnotsupp) -#define fdesc_truncate \ - ((int (*) __P((struct vop_truncate_args *)))eopnotsupp) -#define fdesc_update ((int (*) __P((struct vop_update_args *)))eopnotsupp) -#define fdesc_bwrite ((int (*) __P((struct vop_bwrite_args *)))eopnotsupp) - static struct vnodeopv_entry_desc fdesc_vnodeop_entries[] = { { &vop_default_desc, (vop_t *) vn_default_error }, - { &vop_abortop_desc, (vop_t *) fdesc_abortop }, - { &vop_access_desc, (vop_t *) fdesc_access }, - { &vop_advlock_desc, (vop_t *) fdesc_advlock }, - { &vop_blkatoff_desc, (vop_t *) fdesc_blkatoff }, - { &vop_bmap_desc, (vop_t *) fdesc_bmap }, - { &vop_bwrite_desc, (vop_t *) fdesc_bwrite }, - { &vop_close_desc, (vop_t *) fdesc_close }, - { &vop_create_desc, (vop_t *) fdesc_create }, - { &vop_fsync_desc, (vop_t *) fdesc_fsync }, + { &vop_access_desc, (vop_t *) nullop }, + { &vop_bmap_desc, (vop_t *) fdesc_badop }, + { &vop_close_desc, (vop_t *) nullop }, + { &vop_fsync_desc, (vop_t *) nullop }, { &vop_getattr_desc, (vop_t *) fdesc_getattr }, { &vop_inactive_desc, (vop_t *) fdesc_inactive }, { &vop_ioctl_desc, (vop_t *) fdesc_ioctl }, - { &vop_islocked_desc, (vop_t *) fdesc_islocked }, - { &vop_link_desc, (vop_t *) fdesc_link }, - { &vop_lock_desc, (vop_t *) fdesc_lock }, + { &vop_islocked_desc, (vop_t *) vop_noislocked }, + { &vop_lock_desc, (vop_t *) vop_nolock }, { &vop_lookup_desc, (vop_t *) fdesc_lookup }, - { &vop_mkdir_desc, (vop_t *) fdesc_mkdir }, - { &vop_mknod_desc, (vop_t *) fdesc_mknod }, - { &vop_mmap_desc, (vop_t *) fdesc_mmap }, { &vop_open_desc, (vop_t *) fdesc_open }, { &vop_pathconf_desc, (vop_t *) fdesc_pathconf }, { &vop_poll_desc, (vop_t *) fdesc_poll }, @@ -970,19 +913,9 @@ static struct vnodeopv_entry_desc fdesc_vnodeop_entries[] = { { &vop_readdir_desc, (vop_t *) fdesc_readdir }, { &vop_readlink_desc, (vop_t *) fdesc_readlink }, { &vop_reclaim_desc, (vop_t *) fdesc_reclaim }, - { &vop_remove_desc, (vop_t *) fdesc_remove }, - { &vop_rename_desc, (vop_t *) fdesc_rename }, - { &vop_revoke_desc, (vop_t *) fdesc_revoke }, - { &vop_rmdir_desc, (vop_t *) fdesc_rmdir }, - { &vop_seek_desc, (vop_t *) fdesc_seek }, + { &vop_seek_desc, (vop_t *) nullop }, { &vop_setattr_desc, (vop_t *) fdesc_setattr }, - { &vop_strategy_desc, (vop_t *) fdesc_strategy }, - { &vop_symlink_desc, (vop_t *) fdesc_symlink }, - { &vop_truncate_desc, (vop_t *) fdesc_truncate }, - { &vop_unlock_desc, (vop_t *) fdesc_unlock }, - { &vop_update_desc, (vop_t *) fdesc_update }, - { &vop_valloc_desc, (vop_t *) fdesc_valloc }, - { &vop_vfree_desc, (vop_t *) fdesc_vfree }, + { &vop_unlock_desc, (vop_t *) vop_nounlock }, { &vop_write_desc, (vop_t *) fdesc_write }, { NULL, NULL } }; diff --git a/sys/miscfs/fifofs/fifo_vnops.c b/sys/miscfs/fifofs/fifo_vnops.c index 7bddac3a3b0f..0b157a545223 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.30 1997/10/15 10:04:18 phk Exp $ + * $Id: fifo_vnops.c,v 1.31 1997/10/15 13:23:12 phk Exp $ */ #include <sys/param.h> @@ -82,9 +82,7 @@ static struct vnodeopv_entry_desc fifo_vnodeop_entries[] = { { &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_badop }, { &vop_bmap_desc, (vop_t *) fifo_bmap }, - { &vop_bwrite_desc, (vop_t *) nullop }, { &vop_close_desc, (vop_t *) fifo_close }, { &vop_create_desc, (vop_t *) fifo_badop }, { &vop_fsync_desc, (vop_t *) nullop }, @@ -110,17 +108,12 @@ static struct vnodeopv_entry_desc fifo_vnodeop_entries[] = { { &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 } }; diff --git a/sys/miscfs/kernfs/kernfs_vnops.c b/sys/miscfs/kernfs/kernfs_vnops.c index eff6ec1239f8..3eea65ca24e2 100644 --- a/sys/miscfs/kernfs/kernfs_vnops.c +++ b/sys/miscfs/kernfs/kernfs_vnops.c @@ -34,7 +34,7 @@ * SUCH DAMAGE. * * @(#)kernfs_vnops.c 8.15 (Berkeley) 5/21/95 - * $Id: kernfs_vnops.c,v 1.22 1997/10/15 09:21:04 phk Exp $ + * $Id: kernfs_vnops.c,v 1.23 1997/10/15 10:04:23 phk Exp $ */ /* @@ -116,7 +116,6 @@ static int kernfs_read __P((struct vop_read_args *ap)); static int kernfs_readdir __P((struct vop_readdir_args *ap)); static int kernfs_reclaim __P((struct vop_reclaim_args *ap)); static int kernfs_setattr __P((struct vop_setattr_args *ap)); -static int kernfs_vfree __P((struct vop_vfree_args *ap)); static int kernfs_write __P((struct vop_write_args *ap)); static int kernfs_xread __P((struct kern_target *kt, char *buf, int len, int *lenp)); @@ -689,19 +688,6 @@ kernfs_print(ap) return (0); } -/*void*/ -static int -kernfs_vfree(ap) - struct vop_vfree_args /* { - struct vnode *a_pvp; - ino_t a_ino; - int a_mode; - } */ *ap; -{ - - return (0); -} - /* * Kernfs "should never get here" operation */ @@ -711,84 +697,28 @@ kernfs_badop() return (EIO); } -#define kernfs_create ((int (*) __P((struct vop_create_args *)))eopnotsupp) -#define kernfs_mknod ((int (*) __P((struct vop_mknod_args *)))eopnotsupp) -#define kernfs_close ((int (*) __P((struct vop_close_args *)))nullop) -#define kernfs_ioctl ((int (*) __P((struct vop_ioctl_args *)))eopnotsupp) -#define kernfs_poll vop_nopoll -#define kernfs_revoke vop_revoke -#define kernfs_mmap ((int (*) __P((struct vop_mmap_args *)))eopnotsupp) -#define kernfs_fsync ((int (*) __P((struct vop_fsync_args *)))nullop) -#define kernfs_seek ((int (*) __P((struct vop_seek_args *)))nullop) -#define kernfs_remove ((int (*) __P((struct vop_remove_args *)))eopnotsupp) -#define kernfs_link ((int (*) __P((struct vop_link_args *)))eopnotsupp) -#define kernfs_rename ((int (*) __P((struct vop_rename_args *)))eopnotsupp) -#define kernfs_mkdir ((int (*) __P((struct vop_mkdir_args *)))eopnotsupp) -#define kernfs_rmdir ((int (*) __P((struct vop_rmdir_args *)))eopnotsupp) -#define kernfs_symlink ((int (*) __P((struct vop_symlink_args *)))eopnotsupp) -#define kernfs_readlink ((int (*) __P((struct vop_readlink_args *)))eopnotsupp) -#define kernfs_abortop ((int (*) __P((struct vop_abortop_args *)))nullop) -#define kernfs_lock ((int (*) __P((struct vop_lock_args *)))vop_nolock) -#define kernfs_unlock ((int (*) __P((struct vop_unlock_args *)))vop_nounlock) -#define kernfs_bmap ((int (*) __P((struct vop_bmap_args *)))kernfs_badop) -#define kernfs_strategy \ - ((int (*) __P((struct vop_strategy_args *)))kernfs_badop) -#define kernfs_islocked \ - ((int (*) __P((struct vop_islocked_args *)))vop_noislocked) -#define kernfs_advlock ((int (*) __P((struct vop_advlock_args *)))eopnotsupp) -#define kernfs_blkatoff ((int (*) __P((struct vop_blkatoff_args *)))eopnotsupp) -#define kernfs_valloc ((int(*) __P(( \ - struct vnode *pvp, \ - int mode, \ - struct ucred *cred, \ - struct vnode **vpp))) eopnotsupp) -#define kernfs_truncate ((int (*) __P((struct vop_truncate_args *)))eopnotsupp) -#define kernfs_update ((int (*) __P((struct vop_update_args *)))eopnotsupp) -#define kernfs_bwrite ((int (*) __P((struct vop_bwrite_args *)))eopnotsupp) vop_t **kernfs_vnodeop_p; static struct vnodeopv_entry_desc kernfs_vnodeop_entries[] = { { &vop_default_desc, (vop_t *) vn_default_error }, - { &vop_abortop_desc, (vop_t *) kernfs_abortop }, { &vop_access_desc, (vop_t *) kernfs_access }, - { &vop_advlock_desc, (vop_t *) kernfs_advlock }, - { &vop_blkatoff_desc, (vop_t *) kernfs_blkatoff }, - { &vop_bmap_desc, (vop_t *) kernfs_bmap }, - { &vop_bwrite_desc, (vop_t *) kernfs_bwrite }, - { &vop_close_desc, (vop_t *) kernfs_close }, - { &vop_create_desc, (vop_t *) kernfs_create }, - { &vop_fsync_desc, (vop_t *) kernfs_fsync }, + { &vop_bmap_desc, (vop_t *) kernfs_badop }, + { &vop_close_desc, (vop_t *) nullop }, + { &vop_fsync_desc, (vop_t *) nullop }, { &vop_getattr_desc, (vop_t *) kernfs_getattr }, { &vop_inactive_desc, (vop_t *) kernfs_inactive }, - { &vop_ioctl_desc, (vop_t *) kernfs_ioctl }, - { &vop_islocked_desc, (vop_t *) kernfs_islocked }, - { &vop_link_desc, (vop_t *) kernfs_link }, - { &vop_lock_desc, (vop_t *) kernfs_lock }, + { &vop_islocked_desc, (vop_t *) vop_noislocked }, + { &vop_lock_desc, (vop_t *) vop_nolock }, { &vop_lookup_desc, (vop_t *) kernfs_lookup }, - { &vop_mkdir_desc, (vop_t *) kernfs_mkdir }, - { &vop_mknod_desc, (vop_t *) kernfs_mknod }, - { &vop_mmap_desc, (vop_t *) kernfs_mmap }, { &vop_open_desc, (vop_t *) kernfs_open }, { &vop_pathconf_desc, (vop_t *) kernfs_pathconf }, - { &vop_poll_desc, (vop_t *) kernfs_poll }, { &vop_print_desc, (vop_t *) kernfs_print }, { &vop_read_desc, (vop_t *) kernfs_read }, { &vop_readdir_desc, (vop_t *) kernfs_readdir }, - { &vop_readlink_desc, (vop_t *) kernfs_readlink }, { &vop_reclaim_desc, (vop_t *) kernfs_reclaim }, - { &vop_remove_desc, (vop_t *) kernfs_remove }, - { &vop_rename_desc, (vop_t *) kernfs_rename }, - { &vop_revoke_desc, (vop_t *) kernfs_revoke }, - { &vop_rmdir_desc, (vop_t *) kernfs_rmdir }, - { &vop_seek_desc, (vop_t *) kernfs_seek }, + { &vop_seek_desc, (vop_t *) nullop }, { &vop_setattr_desc, (vop_t *) kernfs_setattr }, - { &vop_strategy_desc, (vop_t *) kernfs_strategy }, - { &vop_symlink_desc, (vop_t *) kernfs_symlink }, - { &vop_truncate_desc, (vop_t *) kernfs_truncate }, - { &vop_unlock_desc, (vop_t *) kernfs_unlock }, - { &vop_update_desc, (vop_t *) kernfs_update }, - { &vop_valloc_desc, (vop_t *) kernfs_valloc }, - { &vop_vfree_desc, (vop_t *) kernfs_vfree }, + { &vop_unlock_desc, (vop_t *) vop_nounlock }, { &vop_write_desc, (vop_t *) kernfs_write }, { NULL, NULL } }; diff --git a/sys/miscfs/portal/portal_vnops.c b/sys/miscfs/portal/portal_vnops.c index 231b3851b65f..d8c2230deba7 100644 --- a/sys/miscfs/portal/portal_vnops.c +++ b/sys/miscfs/portal/portal_vnops.c @@ -35,7 +35,7 @@ * * @(#)portal_vnops.c 8.14 (Berkeley) 5/21/95 * - * $Id: portal_vnops.c,v 1.22 1997/10/15 09:21:11 phk Exp $ + * $Id: portal_vnops.c,v 1.23 1997/10/15 10:04:34 phk Exp $ */ /* @@ -78,7 +78,6 @@ static int portal_print __P((struct vop_print_args *ap)); static int portal_readdir __P((struct vop_readdir_args *ap)); static int portal_reclaim __P((struct vop_reclaim_args *ap)); static int portal_setattr __P((struct vop_setattr_args *ap)); -static int portal_vfree __P((struct vop_vfree_args *ap)); static void portal_closefd(p, fd) @@ -612,19 +611,6 @@ portal_print(ap) return (0); } -/*void*/ -static int -portal_vfree(ap) - struct vop_vfree_args /* { - struct vnode *a_pvp; - ino_t a_ino; - int a_mode; - } */ *ap; -{ - - return (0); -} - /* * Portal vnode unsupported operation @@ -647,94 +633,26 @@ portal_badop() /* NOTREACHED */ } -#define portal_create ((int (*) __P((struct vop_create_args *)))portal_enotsupp) -#define portal_mknod ((int (*) __P((struct vop_mknod_args *)))portal_enotsupp) -#define portal_close ((int (*) __P((struct vop_close_args *)))nullop) -#define portal_access ((int (*) __P((struct vop_access_args *)))nullop) -#define portal_read ((int (*) __P((struct vop_read_args *)))portal_enotsupp) -#define portal_write ((int (*) __P((struct vop_write_args *)))portal_enotsupp) -#define portal_ioctl ((int (*) __P((struct vop_ioctl_args *)))portal_enotsupp) -#define portal_mmap ((int (*) __P((struct vop_mmap_args *)))portal_enotsupp) -#define portal_poll vop_nopoll -#define portal_revoke vop_revoke -#define portal_fsync ((int (*) __P((struct vop_fsync_args *)))nullop) -#define portal_seek ((int (*) __P((struct vop_seek_args *)))nullop) -#define portal_remove ((int (*) __P((struct vop_remove_args *)))portal_enotsupp) -#define portal_link ((int (*) __P((struct vop_link_args *)))portal_enotsupp) -#define portal_rename ((int (*) __P((struct vop_rename_args *)))portal_enotsupp) -#define portal_mkdir ((int (*) __P((struct vop_mkdir_args *)))portal_enotsupp) -#define portal_rmdir ((int (*) __P((struct vop_rmdir_args *)))portal_enotsupp) -#define portal_symlink \ - ((int (*) __P((struct vop_symlink_args *)))portal_enotsupp) -#define portal_readlink \ - ((int (*) __P((struct vop_readlink_args *)))portal_enotsupp) -#define portal_abortop ((int (*) __P((struct vop_abortop_args *)))nullop) -#define portal_lock ((int (*) __P((struct vop_lock_args *)))vop_nolock) -#define portal_unlock ((int (*) __P((struct vop_unlock_args *)))vop_nounlock) -#define portal_bmap ((int (*) __P((struct vop_bmap_args *)))portal_badop) -#define portal_strategy \ - ((int (*) __P((struct vop_strategy_args *)))portal_badop) -#define portal_islocked \ - ((int (*) __P((struct vop_islocked_args *)))vop_noislocked) -#define fifo_islocked ((int(*) __P((struct vop_islocked_args *)))vop_noislocked) -#define portal_advlock \ - ((int (*) __P((struct vop_advlock_args *)))portal_enotsupp) -#define portal_blkatoff \ - ((int (*) __P((struct vop_blkatoff_args *)))portal_enotsupp) -#define portal_valloc ((int(*) __P(( \ - struct vnode *pvp, \ - int mode, \ - struct ucred *cred, \ - struct vnode **vpp))) portal_enotsupp) -#define portal_truncate \ - ((int (*) __P((struct vop_truncate_args *)))portal_enotsupp) -#define portal_update ((int (*) __P((struct vop_update_args *)))portal_enotsupp) -#define portal_bwrite ((int (*) __P((struct vop_bwrite_args *)))portal_enotsupp) - vop_t **portal_vnodeop_p; static struct vnodeopv_entry_desc portal_vnodeop_entries[] = { { &vop_default_desc, (vop_t *) vn_default_error }, - { &vop_abortop_desc, (vop_t *) portal_abortop }, - { &vop_access_desc, (vop_t *) portal_access }, - { &vop_advlock_desc, (vop_t *) portal_advlock }, - { &vop_blkatoff_desc, (vop_t *) portal_blkatoff }, - { &vop_bmap_desc, (vop_t *) portal_bmap }, - { &vop_bwrite_desc, (vop_t *) portal_bwrite }, - { &vop_close_desc, (vop_t *) portal_close }, - { &vop_create_desc, (vop_t *) portal_create }, - { &vop_fsync_desc, (vop_t *) portal_fsync }, + { &vop_access_desc, (vop_t *) nullop }, + { &vop_bmap_desc, (vop_t *) portal_badop }, + { &vop_close_desc, (vop_t *) nullop }, + { &vop_fsync_desc, (vop_t *) nullop }, { &vop_getattr_desc, (vop_t *) portal_getattr }, { &vop_inactive_desc, (vop_t *) portal_inactive }, - { &vop_ioctl_desc, (vop_t *) portal_ioctl }, - { &vop_islocked_desc, (vop_t *) portal_islocked }, - { &vop_link_desc, (vop_t *) portal_link }, - { &vop_lock_desc, (vop_t *) portal_lock }, + { &vop_islocked_desc, (vop_t *) vop_noislocked }, + { &vop_lock_desc, (vop_t *) vop_nolock }, { &vop_lookup_desc, (vop_t *) portal_lookup }, - { &vop_mkdir_desc, (vop_t *) portal_mkdir }, - { &vop_mknod_desc, (vop_t *) portal_mknod }, - { &vop_mmap_desc, (vop_t *) portal_mmap }, { &vop_open_desc, (vop_t *) portal_open }, { &vop_pathconf_desc, (vop_t *) portal_pathconf }, - { &vop_poll_desc, (vop_t *) portal_poll }, { &vop_print_desc, (vop_t *) portal_print }, - { &vop_read_desc, (vop_t *) portal_read }, { &vop_readdir_desc, (vop_t *) portal_readdir }, - { &vop_readlink_desc, (vop_t *) portal_readlink }, { &vop_reclaim_desc, (vop_t *) portal_reclaim }, - { &vop_remove_desc, (vop_t *) portal_remove }, - { &vop_rename_desc, (vop_t *) portal_rename }, - { &vop_revoke_desc, (vop_t *) portal_revoke }, - { &vop_rmdir_desc, (vop_t *) portal_rmdir }, - { &vop_seek_desc, (vop_t *) portal_seek }, + { &vop_seek_desc, (vop_t *) nullop }, { &vop_setattr_desc, (vop_t *) portal_setattr }, - { &vop_strategy_desc, (vop_t *) portal_strategy }, - { &vop_symlink_desc, (vop_t *) portal_symlink }, - { &vop_truncate_desc, (vop_t *) portal_truncate }, - { &vop_unlock_desc, (vop_t *) portal_unlock }, - { &vop_update_desc, (vop_t *) portal_update }, - { &vop_valloc_desc, (vop_t *) portal_valloc }, - { &vop_vfree_desc, (vop_t *) portal_vfree }, - { &vop_write_desc, (vop_t *) portal_write }, + { &vop_unlock_desc, (vop_t *) vop_nounlock }, { NULL, NULL } }; static struct vnodeopv_desc portal_vnodeop_opv_desc = diff --git a/sys/miscfs/procfs/procfs_vnops.c b/sys/miscfs/procfs/procfs_vnops.c index 443d89feb732..ab62a4d801d1 100644 --- a/sys/miscfs/procfs/procfs_vnops.c +++ b/sys/miscfs/procfs/procfs_vnops.c @@ -36,7 +36,7 @@ * * @(#)procfs_vnops.c 8.18 (Berkeley) 5/21/95 * - * $Id: procfs_vnops.c,v 1.34 1997/10/15 09:21:19 phk Exp $ + * $Id: procfs_vnops.c,v 1.35 1997/10/15 10:04:38 phk Exp $ */ /* @@ -936,33 +936,6 @@ atopid(b, len) return (p); } -#define procfs_create ((int (*) __P((struct vop_create_args *))) procfs_badop) -#define procfs_mknod ((int (*) __P((struct vop_mknod_args *))) procfs_badop) -#define procfs_read procfs_rw -#define procfs_write procfs_rw -#define procfs_mmap ((int (*) __P((struct vop_mmap_args *))) procfs_badop) -#define procfs_poll vop_nopoll -#define procfs_revoke vop_revoke -#define procfs_fsync ((int (*) __P((struct vop_fsync_args *))) procfs_badop) -#define procfs_seek ((int (*) __P((struct vop_seek_args *))) procfs_badop) -#define procfs_remove ((int (*) __P((struct vop_remove_args *))) procfs_badop) -#define procfs_link ((int (*) __P((struct vop_link_args *))) procfs_badop) -#define procfs_rename ((int (*) __P((struct vop_rename_args *))) procfs_badop) -#define procfs_mkdir ((int (*) __P((struct vop_mkdir_args *))) procfs_badop) -#define procfs_rmdir ((int (*) __P((struct vop_rmdir_args *))) procfs_badop) -#define procfs_symlink ((int (*) __P((struct vop_symlink_args *))) procfs_badop) -#define procfs_lock ((int (*) __P((struct vop_lock_args *)))vop_nolock) -#define procfs_unlock ((int (*) __P((struct vop_unlock_args *)))vop_nounlock) -#define procfs_strategy ((int (*) __P((struct vop_strategy_args *))) procfs_badop) -#define procfs_islocked \ - ((int (*) __P((struct vop_islocked_args *)))vop_noislocked) -#define procfs_advlock ((int (*) __P((struct vop_advlock_args *))) procfs_badop) -#define procfs_blkatoff ((int (*) __P((struct vop_blkatoff_args *))) procfs_badop) -#define procfs_valloc ((int (*) __P((struct vop_valloc_args *))) procfs_badop) -#define procfs_vfree ((int (*) __P((struct vop_vfree_args *))) nullop) -#define procfs_truncate ((int (*) __P((struct vop_truncate_args *))) procfs_badop) -#define procfs_update ((int (*) __P((struct vop_update_args *))) nullop) - /* * procfs vnode operations. */ @@ -971,44 +944,36 @@ static struct vnodeopv_entry_desc procfs_vnodeop_entries[] = { { &vop_default_desc, (vop_t *) vn_default_error }, { &vop_abortop_desc, (vop_t *) procfs_abortop }, { &vop_access_desc, (vop_t *) procfs_access }, - { &vop_advlock_desc, (vop_t *) procfs_advlock }, - { &vop_blkatoff_desc, (vop_t *) procfs_blkatoff }, + { &vop_advlock_desc, (vop_t *) procfs_badop }, { &vop_bmap_desc, (vop_t *) procfs_bmap }, { &vop_close_desc, (vop_t *) procfs_close }, - { &vop_create_desc, (vop_t *) procfs_create }, - { &vop_fsync_desc, (vop_t *) procfs_fsync }, + { &vop_create_desc, (vop_t *) procfs_badop }, { &vop_getattr_desc, (vop_t *) procfs_getattr }, { &vop_inactive_desc, (vop_t *) procfs_inactive }, { &vop_ioctl_desc, (vop_t *) procfs_ioctl }, - { &vop_islocked_desc, (vop_t *) procfs_islocked }, - { &vop_link_desc, (vop_t *) procfs_link }, - { &vop_lock_desc, (vop_t *) procfs_lock }, + { &vop_islocked_desc, (vop_t *) vop_noislocked }, + { &vop_link_desc, (vop_t *) procfs_badop }, + { &vop_lock_desc, (vop_t *) vop_nolock }, { &vop_lookup_desc, (vop_t *) procfs_lookup }, - { &vop_mkdir_desc, (vop_t *) procfs_mkdir }, - { &vop_mknod_desc, (vop_t *) procfs_mknod }, - { &vop_mmap_desc, (vop_t *) procfs_mmap }, + { &vop_mkdir_desc, (vop_t *) procfs_badop }, + { &vop_mknod_desc, (vop_t *) procfs_badop }, + { &vop_mmap_desc, (vop_t *) procfs_badop }, { &vop_open_desc, (vop_t *) procfs_open }, { &vop_pathconf_desc, (vop_t *) procfs_pathconf }, - { &vop_poll_desc, (vop_t *) procfs_poll }, { &vop_print_desc, (vop_t *) procfs_print }, - { &vop_read_desc, (vop_t *) procfs_read }, + { &vop_read_desc, (vop_t *) procfs_rw }, { &vop_readdir_desc, (vop_t *) procfs_readdir }, { &vop_readlink_desc, (vop_t *) procfs_readlink }, { &vop_reclaim_desc, (vop_t *) procfs_reclaim }, - { &vop_remove_desc, (vop_t *) procfs_remove }, - { &vop_rename_desc, (vop_t *) procfs_rename }, - { &vop_revoke_desc, (vop_t *) procfs_revoke }, - { &vop_rmdir_desc, (vop_t *) procfs_rmdir }, - { &vop_seek_desc, (vop_t *) procfs_seek }, + { &vop_remove_desc, (vop_t *) procfs_badop }, + { &vop_rename_desc, (vop_t *) procfs_badop }, + { &vop_rmdir_desc, (vop_t *) procfs_badop }, + { &vop_seek_desc, (vop_t *) procfs_badop }, { &vop_setattr_desc, (vop_t *) procfs_setattr }, - { &vop_strategy_desc, (vop_t *) procfs_strategy }, - { &vop_symlink_desc, (vop_t *) procfs_symlink }, - { &vop_truncate_desc, (vop_t *) procfs_truncate }, - { &vop_unlock_desc, (vop_t *) procfs_unlock }, - { &vop_update_desc, (vop_t *) procfs_update }, - { &vop_valloc_desc, (vop_t *) procfs_valloc }, - { &vop_vfree_desc, (vop_t *) procfs_vfree }, - { &vop_write_desc, (vop_t *) procfs_write }, + { &vop_symlink_desc, (vop_t *) procfs_badop }, + { &vop_unlock_desc, (vop_t *) vop_nounlock }, + { &vop_update_desc, (vop_t *) nullop }, + { &vop_write_desc, (vop_t *) procfs_rw }, { NULL, NULL } }; static struct vnodeopv_desc procfs_vnodeop_opv_desc = diff --git a/sys/miscfs/specfs/spec_vnops.c b/sys/miscfs/specfs/spec_vnops.c index 73361c28cbe0..12a9f29f4eae 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.45 1997/10/15 10:04:43 phk Exp $ + * $Id: spec_vnops.c,v 1.46 1997/10/15 13:23:18 phk Exp $ */ #include <sys/param.h> @@ -81,12 +81,9 @@ 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_badop }, { &vop_access_desc, (vop_t *) spec_ebadf }, { &vop_advlock_desc, (vop_t *) spec_advlock }, - { &vop_blkatoff_desc, (vop_t *) spec_badop }, { &vop_bmap_desc, (vop_t *) spec_bmap }, - { &vop_bwrite_desc, (vop_t *) nullop }, { &vop_close_desc, (vop_t *) spec_close }, { &vop_create_desc, (vop_t *) spec_badop }, { &vop_fsync_desc, (vop_t *) spec_fsync }, @@ -113,17 +110,13 @@ static struct vnodeopv_entry_desc spec_vnodeop_entries[] = { { &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_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 } }; @@ -480,7 +473,7 @@ spec_poll(ap) dev = ap->a_vp->v_rdev; return (*cdevsw[major(dev)]->d_poll)(dev, ap->a_events, ap->a_p); default: - return (vop_nopoll(ap)); + return (vn_defaultop((struct vop_generic_args *)ap)); } } diff --git a/sys/msdosfs/msdosfs_vnops.c b/sys/msdosfs/msdosfs_vnops.c index dfb416b40898..6871b107fba2 100644 --- a/sys/msdosfs/msdosfs_vnops.c +++ b/sys/msdosfs/msdosfs_vnops.c @@ -1,4 +1,4 @@ -/* $Id: msdosfs_vnops.c,v 1.46 1997/10/15 09:21:39 phk Exp $ */ +/* $Id: msdosfs_vnops.c,v 1.47 1997/10/15 10:05:03 phk Exp $ */ /* $NetBSD: msdosfs_vnops.c,v 1.20 1994/08/21 18:44:13 ws Exp $ */ /*- @@ -1992,7 +1992,6 @@ static struct vnodeopv_entry_desc msdosfs_vnodeop_entries[] = { { &vop_access_desc, (vop_t *) msdosfs_access }, { &vop_advlock_desc, (vop_t *) msdosfs_advlock }, { &vop_bmap_desc, (vop_t *) msdosfs_bmap }, - { &vop_bwrite_desc, (vop_t *) vn_bwrite }, { &vop_cachedlookup_desc, (vop_t *) msdosfs_lookup }, { &vop_close_desc, (vop_t *) msdosfs_close }, { &vop_create_desc, (vop_t *) msdosfs_create }, diff --git a/sys/nfs/nfs_vnops.c b/sys/nfs/nfs_vnops.c index 6585607bacd1..53e65eae617e 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.65 1997/10/15 10:05:10 phk Exp $ + * $Id: nfs_vnops.c,v 1.66 1997/10/15 13:23:35 phk Exp $ */ @@ -148,10 +148,10 @@ static struct vnodeopv_entry_desc nfsv2_vnodeop_entries[] = { { &vop_getpages_desc, (vop_t *) nfs_getpages }, { &vop_inactive_desc, (vop_t *) nfs_inactive }, { &vop_ioctl_desc, (vop_t *) nfs_ioctl }, - { &vop_islocked_desc, (vop_t *) nfs_islocked }, - { &vop_lease_desc, (vop_t *) nfs_lease_check }, + { &vop_islocked_desc, (vop_t *) vop_noislocked }, + { &vop_lease_desc, (vop_t *) nullop }, { &vop_link_desc, (vop_t *) nfs_link }, - { &vop_lock_desc, (vop_t *) nfs_lock }, + { &vop_lock_desc, (vop_t *) vop_sharedlock }, { &vop_lookup_desc, (vop_t *) nfs_lookup }, { &vop_mkdir_desc, (vop_t *) nfs_mkdir }, { &vop_mknod_desc, (vop_t *) nfs_mknod }, @@ -166,13 +166,12 @@ static struct vnodeopv_entry_desc nfsv2_vnodeop_entries[] = { { &vop_reclaim_desc, (vop_t *) nfs_reclaim }, { &vop_remove_desc, (vop_t *) nfs_remove }, { &vop_rename_desc, (vop_t *) nfs_rename }, - { &vop_revoke_desc, (vop_t *) nfs_revoke }, { &vop_rmdir_desc, (vop_t *) nfs_rmdir }, - { &vop_seek_desc, (vop_t *) nfs_seek }, + { &vop_seek_desc, (vop_t *) nullop }, { &vop_setattr_desc, (vop_t *) nfs_setattr }, { &vop_strategy_desc, (vop_t *) nfs_strategy }, { &vop_symlink_desc, (vop_t *) nfs_symlink }, - { &vop_unlock_desc, (vop_t *) nfs_unlock }, + { &vop_unlock_desc, (vop_t *) vop_nounlock }, { &vop_write_desc, (vop_t *) nfs_write }, { NULL, NULL } }; @@ -187,18 +186,17 @@ vop_t **spec_nfsv2nodeop_p; static struct vnodeopv_entry_desc spec_nfsv2nodeop_entries[] = { { &vop_default_desc, (vop_t *) spec_vnoperate }, { &vop_access_desc, (vop_t *) nfsspec_access }, - { &vop_bwrite_desc, (vop_t *) vn_bwrite }, { &vop_close_desc, (vop_t *) nfsspec_close }, { &vop_fsync_desc, (vop_t *) nfs_fsync }, { &vop_getattr_desc, (vop_t *) nfs_getattr }, { &vop_inactive_desc, (vop_t *) nfs_inactive }, - { &vop_islocked_desc, (vop_t *) nfs_islocked }, - { &vop_lock_desc, (vop_t *) nfs_lock }, + { &vop_islocked_desc, (vop_t *) vop_noislocked }, + { &vop_lock_desc, (vop_t *) vop_sharedlock }, { &vop_print_desc, (vop_t *) nfs_print }, { &vop_read_desc, (vop_t *) nfsspec_read }, { &vop_reclaim_desc, (vop_t *) nfs_reclaim }, { &vop_setattr_desc, (vop_t *) nfs_setattr }, - { &vop_unlock_desc, (vop_t *) nfs_unlock }, + { &vop_unlock_desc, (vop_t *) vop_nounlock }, { &vop_write_desc, (vop_t *) nfsspec_write }, { NULL, NULL } }; @@ -210,18 +208,17 @@ vop_t **fifo_nfsv2nodeop_p; static struct vnodeopv_entry_desc fifo_nfsv2nodeop_entries[] = { { &vop_default_desc, (vop_t *) fifo_vnoperate }, { &vop_access_desc, (vop_t *) nfsspec_access }, - { &vop_bwrite_desc, (vop_t *) vn_bwrite }, { &vop_close_desc, (vop_t *) nfsfifo_close }, { &vop_fsync_desc, (vop_t *) nfs_fsync }, { &vop_getattr_desc, (vop_t *) nfs_getattr }, { &vop_inactive_desc, (vop_t *) nfs_inactive }, - { &vop_islocked_desc, (vop_t *) nfs_islocked }, - { &vop_lock_desc, (vop_t *) nfs_lock }, + { &vop_islocked_desc, (vop_t *) vop_noislocked }, + { &vop_lock_desc, (vop_t *) vop_sharedlock }, { &vop_print_desc, (vop_t *) nfs_print }, { &vop_read_desc, (vop_t *) nfsfifo_read }, { &vop_reclaim_desc, (vop_t *) nfs_reclaim }, { &vop_setattr_desc, (vop_t *) nfs_setattr }, - { &vop_unlock_desc, (vop_t *) nfs_unlock }, + { &vop_unlock_desc, (vop_t *) vop_nounlock }, { &vop_write_desc, (vop_t *) nfsfifo_write }, { NULL, NULL } }; diff --git a/sys/nfs/nfsnode.h b/sys/nfs/nfsnode.h index 38686ffdb5ff..880b35629b4e 100644 --- a/sys/nfs/nfsnode.h +++ b/sys/nfs/nfsnode.h @@ -34,7 +34,7 @@ * SUCH DAMAGE. * * @(#)nfsnode.h 8.9 (Berkeley) 5/14/95 - * $Id: nfsnode.h,v 1.21 1997/05/19 14:36:51 dfr Exp $ + * $Id: nfsnode.h,v 1.22 1997/10/15 07:42:34 phk Exp $ */ @@ -163,16 +163,10 @@ extern vop_t **spec_nfsv2nodeop_p; */ int nfs_getpages __P((struct vop_getpages_args *)); int nfs_write __P((struct vop_write_args *)); -#define nfs_lease_check ((int (*) __P((struct vop_lease_args *)))nullop) int nqnfs_vop_lease_check __P((struct vop_lease_args *)); -#define nfs_revoke vop_revoke -#define nfs_seek ((int (*) __P((struct vop_seek_args *)))nullop) int nfs_abortop __P((struct vop_abortop_args *)); int nfs_inactive __P((struct vop_inactive_args *)); int nfs_reclaim __P((struct vop_reclaim_args *)); -#define nfs_lock ((int (*) __P((struct vop_lock_args *)))vop_sharedlock) -#define nfs_unlock ((int (*) __P((struct vop_unlock_args *)))vop_nounlock) -#define nfs_islocked ((int (*) __P((struct vop_islocked_args *)))vop_noislocked) /* other stuff */ int nfs_removeit __P((struct sillyrename *)); diff --git a/sys/nfsclient/nfs_vnops.c b/sys/nfsclient/nfs_vnops.c index 6585607bacd1..53e65eae617e 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.65 1997/10/15 10:05:10 phk Exp $ + * $Id: nfs_vnops.c,v 1.66 1997/10/15 13:23:35 phk Exp $ */ @@ -148,10 +148,10 @@ static struct vnodeopv_entry_desc nfsv2_vnodeop_entries[] = { { &vop_getpages_desc, (vop_t *) nfs_getpages }, { &vop_inactive_desc, (vop_t *) nfs_inactive }, { &vop_ioctl_desc, (vop_t *) nfs_ioctl }, - { &vop_islocked_desc, (vop_t *) nfs_islocked }, - { &vop_lease_desc, (vop_t *) nfs_lease_check }, + { &vop_islocked_desc, (vop_t *) vop_noislocked }, + { &vop_lease_desc, (vop_t *) nullop }, { &vop_link_desc, (vop_t *) nfs_link }, - { &vop_lock_desc, (vop_t *) nfs_lock }, + { &vop_lock_desc, (vop_t *) vop_sharedlock }, { &vop_lookup_desc, (vop_t *) nfs_lookup }, { &vop_mkdir_desc, (vop_t *) nfs_mkdir }, { &vop_mknod_desc, (vop_t *) nfs_mknod }, @@ -166,13 +166,12 @@ static struct vnodeopv_entry_desc nfsv2_vnodeop_entries[] = { { &vop_reclaim_desc, (vop_t *) nfs_reclaim }, { &vop_remove_desc, (vop_t *) nfs_remove }, { &vop_rename_desc, (vop_t *) nfs_rename }, - { &vop_revoke_desc, (vop_t *) nfs_revoke }, { &vop_rmdir_desc, (vop_t *) nfs_rmdir }, - { &vop_seek_desc, (vop_t *) nfs_seek }, + { &vop_seek_desc, (vop_t *) nullop }, { &vop_setattr_desc, (vop_t *) nfs_setattr }, { &vop_strategy_desc, (vop_t *) nfs_strategy }, { &vop_symlink_desc, (vop_t *) nfs_symlink }, - { &vop_unlock_desc, (vop_t *) nfs_unlock }, + { &vop_unlock_desc, (vop_t *) vop_nounlock }, { &vop_write_desc, (vop_t *) nfs_write }, { NULL, NULL } }; @@ -187,18 +186,17 @@ vop_t **spec_nfsv2nodeop_p; static struct vnodeopv_entry_desc spec_nfsv2nodeop_entries[] = { { &vop_default_desc, (vop_t *) spec_vnoperate }, { &vop_access_desc, (vop_t *) nfsspec_access }, - { &vop_bwrite_desc, (vop_t *) vn_bwrite }, { &vop_close_desc, (vop_t *) nfsspec_close }, { &vop_fsync_desc, (vop_t *) nfs_fsync }, { &vop_getattr_desc, (vop_t *) nfs_getattr }, { &vop_inactive_desc, (vop_t *) nfs_inactive }, - { &vop_islocked_desc, (vop_t *) nfs_islocked }, - { &vop_lock_desc, (vop_t *) nfs_lock }, + { &vop_islocked_desc, (vop_t *) vop_noislocked }, + { &vop_lock_desc, (vop_t *) vop_sharedlock }, { &vop_print_desc, (vop_t *) nfs_print }, { &vop_read_desc, (vop_t *) nfsspec_read }, { &vop_reclaim_desc, (vop_t *) nfs_reclaim }, { &vop_setattr_desc, (vop_t *) nfs_setattr }, - { &vop_unlock_desc, (vop_t *) nfs_unlock }, + { &vop_unlock_desc, (vop_t *) vop_nounlock }, { &vop_write_desc, (vop_t *) nfsspec_write }, { NULL, NULL } }; @@ -210,18 +208,17 @@ vop_t **fifo_nfsv2nodeop_p; static struct vnodeopv_entry_desc fifo_nfsv2nodeop_entries[] = { { &vop_default_desc, (vop_t *) fifo_vnoperate }, { &vop_access_desc, (vop_t *) nfsspec_access }, - { &vop_bwrite_desc, (vop_t *) vn_bwrite }, { &vop_close_desc, (vop_t *) nfsfifo_close }, { &vop_fsync_desc, (vop_t *) nfs_fsync }, { &vop_getattr_desc, (vop_t *) nfs_getattr }, { &vop_inactive_desc, (vop_t *) nfs_inactive }, - { &vop_islocked_desc, (vop_t *) nfs_islocked }, - { &vop_lock_desc, (vop_t *) nfs_lock }, + { &vop_islocked_desc, (vop_t *) vop_noislocked }, + { &vop_lock_desc, (vop_t *) vop_sharedlock }, { &vop_print_desc, (vop_t *) nfs_print }, { &vop_read_desc, (vop_t *) nfsfifo_read }, { &vop_reclaim_desc, (vop_t *) nfs_reclaim }, { &vop_setattr_desc, (vop_t *) nfs_setattr }, - { &vop_unlock_desc, (vop_t *) nfs_unlock }, + { &vop_unlock_desc, (vop_t *) vop_nounlock }, { &vop_write_desc, (vop_t *) nfsfifo_write }, { NULL, NULL } }; diff --git a/sys/nfsclient/nfsnode.h b/sys/nfsclient/nfsnode.h index 38686ffdb5ff..880b35629b4e 100644 --- a/sys/nfsclient/nfsnode.h +++ b/sys/nfsclient/nfsnode.h @@ -34,7 +34,7 @@ * SUCH DAMAGE. * * @(#)nfsnode.h 8.9 (Berkeley) 5/14/95 - * $Id: nfsnode.h,v 1.21 1997/05/19 14:36:51 dfr Exp $ + * $Id: nfsnode.h,v 1.22 1997/10/15 07:42:34 phk Exp $ */ @@ -163,16 +163,10 @@ extern vop_t **spec_nfsv2nodeop_p; */ int nfs_getpages __P((struct vop_getpages_args *)); int nfs_write __P((struct vop_write_args *)); -#define nfs_lease_check ((int (*) __P((struct vop_lease_args *)))nullop) int nqnfs_vop_lease_check __P((struct vop_lease_args *)); -#define nfs_revoke vop_revoke -#define nfs_seek ((int (*) __P((struct vop_seek_args *)))nullop) int nfs_abortop __P((struct vop_abortop_args *)); int nfs_inactive __P((struct vop_inactive_args *)); int nfs_reclaim __P((struct vop_reclaim_args *)); -#define nfs_lock ((int (*) __P((struct vop_lock_args *)))vop_sharedlock) -#define nfs_unlock ((int (*) __P((struct vop_unlock_args *)))vop_nounlock) -#define nfs_islocked ((int (*) __P((struct vop_islocked_args *)))vop_noislocked) /* other stuff */ int nfs_removeit __P((struct sillyrename *)); diff --git a/sys/sys/vnode.h b/sys/sys/vnode.h index 999776939e66..009d827b3e29 100644 --- a/sys/sys/vnode.h +++ b/sys/sys/vnode.h @@ -31,7 +31,7 @@ * SUCH DAMAGE. * * @(#)vnode.h 8.7 (Berkeley) 2/4/94 - * $Id: vnode.h,v 1.49 1997/09/21 04:24:09 dyson Exp $ + * $Id: vnode.h,v 1.50 1997/10/12 20:26:07 phk Exp $ */ #ifndef _SYS_VNODE_H_ @@ -373,11 +373,6 @@ struct vnodeopv_desc { }; /* - * A default routine which just returns an error. - */ -int vn_default_error __P((void)); - -/* * A generic structure. * This can be used by bypass routines to identify generic arguments. */ @@ -386,6 +381,14 @@ struct vop_generic_args { /* other random data follows, presumably */ }; +/* + * A default routine for vnops we shouldn't hit + */ +int vn_defaultop __P((struct vop_generic_args *ap)); + +/* XXX: compat until fixed all places*/ +#define vn_default_error vn_defaultop + #ifdef DEBUG_VFS_LOCKS /* * Macros to aid in tracing VFS locking problems. Not totally diff --git a/sys/ufs/ffs/ffs_alloc.c b/sys/ufs/ffs/ffs_alloc.c index 425bf64bc8d1..85ef1b6c54ef 100644 --- a/sys/ufs/ffs/ffs_alloc.c +++ b/sys/ufs/ffs/ffs_alloc.c @@ -31,7 +31,7 @@ * SUCH DAMAGE. * * @(#)ffs_alloc.c 8.18 (Berkeley) 5/26/95 - * $Id: ffs_alloc.c,v 1.38 1997/10/14 14:22:23 phk Exp $ + * $Id: ffs_alloc.c,v 1.39 1997/10/14 18:46:41 phk Exp $ */ #include "opt_quota.h" @@ -48,6 +48,7 @@ #include <ufs/ufs/quota.h> #include <ufs/ufs/inode.h> +#include <ufs/ufs/ufsmount.h> #include <ufs/ffs/fs.h> #include <ufs/ffs/ffs_extern.h> @@ -545,23 +546,19 @@ fail: * available inode is located. */ int -ffs_valloc(ap) - struct vop_valloc_args /* { - struct vnode *a_pvp; - int a_mode; - struct ucred *a_cred; - struct vnode **a_vpp; - } */ *ap; +ffs_valloc(pvp, mode, cred, vpp) + struct vnode *pvp; + int mode; + struct ucred *cred; + struct vnode **vpp; { - register struct vnode *pvp = ap->a_pvp; register struct inode *pip; register struct fs *fs; register struct inode *ip; - mode_t mode = ap->a_mode; ino_t ino, ipref; int cg, error; - *ap->a_vpp = NULL; + *vpp = NULL; pip = VTOI(pvp); fs = pip->i_fs; if (fs->fs_cstotal.cs_nifree == 0) @@ -578,12 +575,12 @@ ffs_valloc(ap) (allocfcn_t *)ffs_nodealloccg); if (ino == 0) goto noinodes; - error = VFS_VGET(pvp->v_mount, ino, ap->a_vpp); + error = VFS_VGET(pvp->v_mount, ino, vpp); if (error) { - VOP_VFREE(pvp, ino, mode); + UFS_VFREE(pvp, ino, mode); return (error); } - ip = VTOI(*ap->a_vpp); + ip = VTOI(*vpp); if (ip->i_mode) { printf("mode = 0%o, inum = %ld, fs = %s\n", ip->i_mode, ip->i_number, fs->fs_fsmnt); @@ -602,7 +599,7 @@ ffs_valloc(ap) ip->i_gen = random() / 2 + 1; return (0); noinodes: - ffs_fserr(fs, ap->a_cred->cr_uid, "out of inodes"); + ffs_fserr(fs, cred->cr_uid, "out of inodes"); uprintf("\n%s: create/symlink failed, no inodes free\n", fs->fs_fsmnt); return (ENOSPC); } @@ -1404,21 +1401,18 @@ ffs_checkblk(ip, bno, size) * The specified inode is placed back in the free map. */ int -ffs_vfree(ap) - struct vop_vfree_args /* { - struct vnode *a_pvp; - ino_t a_ino; - int a_mode; - } */ *ap; +ffs_vfree(pvp, ino, mode) + struct vnode *pvp; + ino_t ino; + int mode; { register struct fs *fs; register struct cg *cgp; register struct inode *pip; - ino_t ino = ap->a_ino; struct buf *bp; int error, cg; - pip = VTOI(ap->a_pvp); + pip = VTOI(pvp); fs = pip->i_fs; if ((u_int)ino >= fs->fs_ipg * fs->fs_ncg) panic("ffs_vfree: range: dev = 0x%x, ino = %d, fs = %s", @@ -1449,7 +1443,7 @@ ffs_vfree(ap) cgp->cg_cs.cs_nifree++; fs->fs_cstotal.cs_nifree++; fs->fs_cs(fs, cg).cs_nifree++; - if ((ap->a_mode & IFMT) == IFDIR) { + if ((mode & IFMT) == IFDIR) { cgp->cg_cs.cs_ndir--; fs->fs_cstotal.cs_ndir--; fs->fs_cs(fs, cg).cs_ndir--; diff --git a/sys/ufs/ffs/ffs_extern.h b/sys/ufs/ffs/ffs_extern.h index 7cc5251284d2..4aa6118e0710 100644 --- a/sys/ufs/ffs/ffs_extern.h +++ b/sys/ufs/ffs/ffs_extern.h @@ -31,7 +31,7 @@ * SUCH DAMAGE. * * @(#)ffs_extern.h 8.6 (Berkeley) 3/30/95 - * $Id: ffs_extern.h,v 1.17 1997/09/27 13:40:05 kato Exp $ + * $Id: ffs_extern.h,v 1.18 1997/10/10 18:16:58 phk Exp $ */ #ifndef _UFS_FFS_EXTERN_H @@ -65,7 +65,7 @@ int ffs_alloc __P((struct inode *, ufs_daddr_t, ufs_daddr_t, int, struct ucred *, ufs_daddr_t *)); int ffs_balloc __P((struct inode *, ufs_daddr_t, int, struct ucred *, struct buf **, int)); -int ffs_blkatoff __P((struct vop_blkatoff_args *)); +int ffs_blkatoff __P((struct vnode *, off_t, char **, struct buf **)); void ffs_blkfree __P((struct inode *, ufs_daddr_t, long)); ufs_daddr_t ffs_blkpref __P((struct inode *, ufs_daddr_t, int, ufs_daddr_t *)); int ffs_bmap __P((struct vop_bmap_args *)); @@ -84,11 +84,12 @@ int ffs_realloccg __P((struct inode *, void ffs_setblock __P((struct fs *, u_char *, ufs_daddr_t)); int ffs_statfs __P((struct mount *, struct statfs *, struct proc *)); int ffs_sync __P((struct mount *, int, struct ucred *, struct proc *)); -int ffs_truncate __P((struct vop_truncate_args *)); +int ffs_truncate __P((struct vnode *, off_t, int, struct ucred *, struct proc *)); int ffs_unmount __P((struct mount *, int, struct proc *)); int ffs_update __P((struct vop_update_args *)); -int ffs_valloc __P((struct vop_valloc_args *)); -int ffs_vfree __P((struct vop_vfree_args *)); +int ffs_valloc __P((struct vnode *, int, struct ucred *, struct vnode **)); + +int ffs_vfree __P((struct vnode *, ino_t, int)); int ffs_vget __P((struct mount *, ino_t, struct vnode **)); int ffs_vptofh __P((struct vnode *, struct fid *)); diff --git a/sys/ufs/ffs/ffs_inode.c b/sys/ufs/ffs/ffs_inode.c index 99dc77b86b24..78cf65c22abb 100644 --- a/sys/ufs/ffs/ffs_inode.c +++ b/sys/ufs/ffs/ffs_inode.c @@ -31,7 +31,7 @@ * SUCH DAMAGE. * * @(#)ffs_inode.c 8.13 (Berkeley) 4/21/95 - * $Id: ffs_inode.c,v 1.26 1997/03/22 06:53:29 bde Exp $ + * $Id: ffs_inode.c,v 1.27 1997/09/02 20:06:44 bde Exp $ */ #include "opt_quota.h" @@ -149,21 +149,18 @@ ffs_update(ap) * disk blocks. */ int -ffs_truncate(ap) - struct vop_truncate_args /* { - struct vnode *a_vp; - off_t a_length; - int a_flags; - struct ucred *a_cred; - struct proc *a_p; - } */ *ap; +ffs_truncate(vp, length, flags, cred, p) + struct vnode *vp; + off_t length; + int flags; + struct ucred *cred; + struct proc *p; { - register struct vnode *ovp = ap->a_vp; + register struct vnode *ovp = vp; ufs_daddr_t lastblock; register struct inode *oip; ufs_daddr_t bn, lbn, lastiblock[NIADDR], indir_lbn[NIADDR]; ufs_daddr_t oldblks[NDADDR + NIADDR], newblks[NDADDR + NIADDR]; - off_t length = ap->a_length; register struct fs *fs; struct buf *bp; int offset, size, level; @@ -210,9 +207,9 @@ ffs_truncate(ap) offset = blkoff(fs, length - 1); lbn = lblkno(fs, length - 1); aflags = B_CLRBUF; - if (ap->a_flags & IO_SYNC) + if (flags & IO_SYNC) aflags |= B_SYNC; - error = ffs_balloc(oip, lbn, offset + 1, ap->a_cred, + error = ffs_balloc(oip, lbn, offset + 1, cred, &bp, aflags); if (error) return (error); @@ -240,9 +237,9 @@ ffs_truncate(ap) } else { lbn = lblkno(fs, length); aflags = B_CLRBUF; - if (ap->a_flags & IO_SYNC) + if (flags & IO_SYNC) aflags |= B_SYNC; - error = ffs_balloc(oip, lbn, offset, ap->a_cred, &bp, aflags); + error = ffs_balloc(oip, lbn, offset, cred, &bp, aflags); if (error) return (error); oip->i_size = length; @@ -296,7 +293,7 @@ ffs_truncate(ap) bcopy((caddr_t)oldblks, (caddr_t)&oip->i_db[0], sizeof oldblks); oip->i_size = osize; vflags = ((length > 0) ? V_SAVE : 0) | V_SAVEMETA; - allerror = vinvalbuf(ovp, vflags, ap->a_cred, ap->a_p, 0, 0); + allerror = vinvalbuf(ovp, vflags, cred, p, 0, 0); /* * Indirect blocks first. diff --git a/sys/ufs/ffs/ffs_subr.c b/sys/ufs/ffs/ffs_subr.c index 1387b2059a41..06d5b552ea23 100644 --- a/sys/ufs/ffs/ffs_subr.c +++ b/sys/ufs/ffs/ffs_subr.c @@ -31,7 +31,7 @@ * SUCH DAMAGE. * * @(#)ffs_subr.c 8.5 (Berkeley) 3/21/95 - * $Id: ffs_subr.c,v 1.11 1997/02/22 09:47:04 peter Exp $ + * $Id: ffs_subr.c,v 1.12 1997/03/09 06:00:42 mpp Exp $ */ #include <sys/param.h> @@ -57,13 +57,11 @@ * remaining space in the directory. */ int -ffs_blkatoff(ap) - struct vop_blkatoff_args /* { - struct vnode *a_vp; - off_t a_offset; - char **a_res; - struct buf **a_bpp; - } */ *ap; +ffs_blkatoff(vp, offset, res, bpp) + struct vnode *vp; + off_t offset; + char **res; + struct buf **bpp; { struct inode *ip; register struct fs *fs; @@ -71,20 +69,20 @@ ffs_blkatoff(ap) ufs_daddr_t lbn; int bsize, error; - ip = VTOI(ap->a_vp); + ip = VTOI(vp); fs = ip->i_fs; - lbn = lblkno(fs, ap->a_offset); + lbn = lblkno(fs, offset); bsize = blksize(fs, ip, lbn); - *ap->a_bpp = NULL; - error = bread(ap->a_vp, lbn, bsize, NOCRED, &bp); + *bpp = NULL; + error = bread(vp, lbn, bsize, NOCRED, &bp); if (error) { brelse(bp); return (error); } - if (ap->a_res) - *ap->a_res = (char *)bp->b_data + blkoff(fs, ap->a_offset); - *ap->a_bpp = bp; + if (res) + *res = (char *)bp->b_data + blkoff(fs, offset); + *bpp = bp; return (0); } #endif diff --git a/sys/ufs/ffs/ffs_vfsops.c b/sys/ufs/ffs/ffs_vfsops.c index 05ee30639b2d..c053477c5929 100644 --- a/sys/ufs/ffs/ffs_vfsops.c +++ b/sys/ufs/ffs/ffs_vfsops.c @@ -31,7 +31,7 @@ * SUCH DAMAGE. * * @(#)ffs_vfsops.c 8.31 (Berkeley) 5/20/95 - * $Id: ffs_vfsops.c,v 1.58 1997/10/11 18:31:36 phk Exp $ + * $Id: ffs_vfsops.c,v 1.59 1997/10/12 20:26:12 phk Exp $ */ #include "opt_quota.h" @@ -555,6 +555,10 @@ ffs_mountfs(devvp, mp, p, malloctype) ump->um_malloctype = malloctype; ump->um_fs = malloc((u_long)fs->fs_sbsize, M_UFSMNT, M_WAITOK); + ump->um_blkatoff = ffs_blkatoff; + ump->um_truncate = ffs_truncate; + ump->um_valloc = ffs_valloc; + ump->um_vfree = ffs_vfree; bcopy(bp->b_data, ump->um_fs, (u_int)fs->fs_sbsize); if (fs->fs_sbsize < SBSIZE) bp->b_flags |= B_INVAL; diff --git a/sys/ufs/ffs/ffs_vnops.c b/sys/ufs/ffs/ffs_vnops.c index d3b908528ee6..254d5e56ae93 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.33 1997/10/15 10:05:17 phk Exp $ + * $Id: ffs_vnops.c,v 1.34 1997/10/15 13:23:47 phk Exp $ */ #include <sys/param.h> @@ -73,15 +73,11 @@ static int ffs_write __P((struct vop_write_args *)); vop_t **ffs_vnodeop_p; static struct vnodeopv_entry_desc ffs_vnodeop_entries[] = { { &vop_default_desc, (vop_t *) ufs_vnoperate }, - { &vop_blkatoff_desc, (vop_t *) ffs_blkatoff }, { &vop_fsync_desc, (vop_t *) ffs_fsync }, { &vop_getpages_desc, (vop_t *) ffs_getpages }, { &vop_read_desc, (vop_t *) ffs_read }, { &vop_reallocblks_desc, (vop_t *) ffs_reallocblks }, - { &vop_truncate_desc, (vop_t *) ffs_truncate }, { &vop_update_desc, (vop_t *) ffs_update }, - { &vop_valloc_desc, (vop_t *) ffs_valloc }, - { &vop_vfree_desc, (vop_t *) ffs_vfree }, { &vop_write_desc, (vop_t *) ffs_write }, { NULL, NULL } }; @@ -93,7 +89,6 @@ static struct vnodeopv_entry_desc ffs_specop_entries[] = { { &vop_default_desc, (vop_t *) ufs_vnoperatespec }, { &vop_fsync_desc, (vop_t *) ffs_fsync }, { &vop_update_desc, (vop_t *) ffs_update }, - { &vop_vfree_desc, (vop_t *) ffs_vfree }, { NULL, NULL } }; static struct vnodeopv_desc ffs_specop_opv_desc = @@ -104,7 +99,6 @@ static struct vnodeopv_entry_desc ffs_fifoop_entries[] = { { &vop_default_desc, (vop_t *) ufs_vnoperatefifo }, { &vop_fsync_desc, (vop_t *) ffs_fsync }, { &vop_update_desc, (vop_t *) ffs_update }, - { &vop_vfree_desc, (vop_t *) ffs_vfree }, { NULL, NULL } }; static struct vnodeopv_desc ffs_fifoop_opv_desc = diff --git a/sys/ufs/lfs/lfs_alloc.c b/sys/ufs/lfs/lfs_alloc.c index 797d0ba780e3..a3f979daed6f 100644 --- a/sys/ufs/lfs/lfs_alloc.c +++ b/sys/ufs/lfs/lfs_alloc.c @@ -31,7 +31,7 @@ * SUCH DAMAGE. * * @(#)lfs_alloc.c 8.7 (Berkeley) 5/14/95 - * $Id: lfs_alloc.c,v 1.16 1997/10/14 14:22:29 phk Exp $ + * $Id: lfs_alloc.c,v 1.17 1997/10/14 18:46:43 phk Exp $ */ #include "opt_quota.h" @@ -60,13 +60,11 @@ extern u_long nextgennumber; /* Allocate a new inode. */ /* ARGSUSED */ int -lfs_valloc(ap) - struct vop_valloc_args /* { - struct vnode *a_pvp; - int a_mode; - struct ucred *a_cred; - struct vnode **a_vpp; - } */ *ap; +lfs_valloc(pvp, mode, cred, vpp) + struct vnode *pvp; + int mode; + struct ucred *cred; + struct vnode **vpp; { struct lfs *fs; struct buf *bp; @@ -79,7 +77,7 @@ lfs_valloc(ap) int error; /* Get the head of the freelist. */ - fs = VTOI(ap->a_pvp)->i_lfs; + fs = VTOI(pvp)->i_lfs; new_ino = fs->lfs_free; #ifdef ALLOCPRINT printf("lfs_ialloc: allocate inode %d\n", new_ino); @@ -120,7 +118,7 @@ lfs_valloc(ap) } /* Create a vnode to associate with the inode. */ - if (error = lfs_vcreate(ap->a_pvp->v_mount, new_ino, &vp)) + if (error = lfs_vcreate(pvp->v_mount, new_ino, &vp)) return (error); @@ -139,11 +137,11 @@ lfs_valloc(ap) if (error = ufs_vinit(vp->v_mount, lfs_specop_p, LFS_FIFOOPS, &vp)) { vput(vp); - *ap->a_vpp = NULL; + *vpp = NULL; return (error); } - *ap->a_vpp = vp; + *vpp = vp; vp->v_flag |= VDIROP; VREF(ip->i_devvp); @@ -206,12 +204,10 @@ lfs_vcreate(mp, ino, vpp) /* Free an inode. */ /* ARGUSED */ int -lfs_vfree(ap) - struct vop_vfree_args /* { - struct vnode *a_pvp; - ino_t a_ino; - int a_mode; - } */ *ap; +lfs_vfree(pvp, ino, mode) + struct vnode *pvp; + ino_t ino; + int mode; { SEGUSE *sup; struct buf *bp; @@ -222,7 +218,7 @@ lfs_vfree(ap) ino_t ino; /* Get the inode number and file system. */ - ip = VTOI(ap->a_pvp); + ip = VTOI(pvp); fs = ip->i_lfs; ino = ip->i_number; if (ip->i_flag & IN_MODIFIED) { diff --git a/sys/ufs/lfs/lfs_extern.h b/sys/ufs/lfs/lfs_extern.h index acab203525ac..030feddbaf7d 100644 --- a/sys/ufs/lfs/lfs_extern.h +++ b/sys/ufs/lfs/lfs_extern.h @@ -31,7 +31,7 @@ * SUCH DAMAGE. * * @(#)lfs_extern.h 8.6 (Berkeley) 5/8/95 - * $Id: lfs_extern.h,v 1.16 1997/10/10 18:17:20 phk Exp $ + * $Id: lfs_extern.h,v 1.17 1997/10/12 20:26:15 phk Exp $ */ #ifndef _UFS_LFS_LFS_EXTERN_H_ @@ -39,15 +39,17 @@ #ifdef KERNEL +#ifdef MALLOC_DECLARE MALLOC_DECLARE(M_LFSNODE); MALLOC_DECLARE(M_SEGMENT); /* XXX should be M_LFSSEGMENT ?? */ +#endif struct inode; struct mount; struct nameidata; int lfs_balloc __P((struct vnode *, int, u_long, ufs_daddr_t, struct buf **)); -int lfs_blkatoff __P((struct vop_blkatoff_args *)); +int lfs_blkatoff __P((struct vnode *, off_t, char **, struct buf **)); int lfs_bwrite __P((struct vop_bwrite_args *)); int lfs_check __P((struct vnode *, ufs_daddr_t)); void lfs_free_buffer __P((caddr_t, int)); @@ -65,12 +67,12 @@ void lfs_segunlock __P((struct lfs *)); int lfs_segwrite __P((struct mount *, int)); #define lfs_sysctl ((int (*) __P((int *, u_int, void *, size_t *, void *, \ size_t, struct proc *)))eopnotsupp) -int lfs_truncate __P((struct vop_truncate_args *)); +int lfs_truncate __P((struct vnode *, off_t, int, struct ucred *, struct proc *)); int lfs_update __P((struct vop_update_args *)); void lfs_updatemeta __P((struct segment *)); -int lfs_valloc __P((struct vop_valloc_args *)); +int lfs_valloc __P((struct vnode *, int, struct ucred *, struct vnode **)); int lfs_vcreate __P((struct mount *, ino_t, struct vnode **)); -int lfs_vfree __P((struct vop_vfree_args *)); +int lfs_vfree __P((struct vnode *, ino_t, int)); int lfs_vflush __P((struct vnode *)); int lfs_vref __P((struct vnode *)); void lfs_vunref __P((struct vnode *)); diff --git a/sys/ufs/lfs/lfs_inode.c b/sys/ufs/lfs/lfs_inode.c index 545c1df434ce..6b0315132dc6 100644 --- a/sys/ufs/lfs/lfs_inode.c +++ b/sys/ufs/lfs/lfs_inode.c @@ -31,7 +31,7 @@ * SUCH DAMAGE. * * @(#)lfs_inode.c 8.9 (Berkeley) 5/8/95 - * $Id: lfs_inode.c,v 1.17 1997/03/22 09:33:55 bde Exp $ + * $Id: lfs_inode.c,v 1.18 1997/09/02 20:06:48 bde Exp $ */ #include "opt_quota.h" @@ -154,20 +154,16 @@ lfs_update(ap) */ /* ARGSUSED */ int -lfs_truncate(ap) - struct vop_truncate_args /* { - struct vnode *a_vp; - off_t a_length; - int a_flags; - struct ucred *a_cred; - struct proc *a_p; - } */ *ap; +lfs_truncate(vp, length, flags, cred, p) + struct vnode *vp; + off_t length; + int flags; + struct ucred *cred; + struct proc *p; { register struct indir *inp; register int i; register ufs_daddr_t *daddrp; - register struct vnode *vp = ap->a_vp; - off_t length = ap->a_length; struct buf *bp, *sup_bp; struct timeval tv; struct ifile *ifp; @@ -378,7 +374,7 @@ lfs_truncate(ap) } #endif fs->lfs_avail += fragstodb(fs, a_released); - e1 = vinvalbuf(vp, (length > 0) ? V_SAVE : 0, ap->a_cred, ap->a_p, + e1 = vinvalbuf(vp, (length > 0) ? V_SAVE : 0, cred, p, 0, 0); e2 = VOP_UPDATE(vp, &tv, &tv, 0); return (e1 ? e1 : e2 ? e2 : 0); diff --git a/sys/ufs/lfs/lfs_subr.c b/sys/ufs/lfs/lfs_subr.c index 62ab3ea79303..ad4fbcc12c3b 100644 --- a/sys/ufs/lfs/lfs_subr.c +++ b/sys/ufs/lfs/lfs_subr.c @@ -31,7 +31,7 @@ * SUCH DAMAGE. * * @(#)lfs_subr.c 8.4 (Berkeley) 5/8/95 - * $Id: lfs_subr.c,v 1.10 1997/02/22 09:47:23 peter Exp $ + * $Id: lfs_subr.c,v 1.11 1997/08/02 14:33:21 bde Exp $ */ #include <sys/param.h> @@ -53,13 +53,11 @@ * remaining space in the directory. */ int -lfs_blkatoff(ap) - struct vop_blkatoff_args /* { - struct vnode *a_vp; - off_t a_offset; - char **a_res; - struct buf **a_bpp; - } */ *ap; +lfs_blkatoff(vp, offset, res, bpp) + struct vnode *vp; + off_t offset; + char **res; + struct buf **bpp; { register struct lfs *fs; struct inode *ip; @@ -67,19 +65,19 @@ lfs_blkatoff(ap) ufs_daddr_t lbn; int bsize, error; - ip = VTOI(ap->a_vp); + ip = VTOI(vp); fs = ip->i_lfs; - lbn = lblkno(fs, ap->a_offset); + lbn = lblkno(fs, offset); bsize = blksize(fs, ip, lbn); - *ap->a_bpp = NULL; - if (error = bread(ap->a_vp, lbn, bsize, NOCRED, &bp)) { + *bpp = NULL; + if (error = bread(vp, lbn, bsize, NOCRED, &bp)) { brelse(bp); return (error); } - if (ap->a_res) - *ap->a_res = (char *)bp->b_data + blkoff(fs, ap->a_offset); - *ap->a_bpp = bp; + if (res) + *res = (char *)bp->b_data + blkoff(fs, offset); + *bpp = bp; return (0); } diff --git a/sys/ufs/lfs/lfs_vnops.c b/sys/ufs/lfs/lfs_vnops.c index b7d930fa00b7..a440b2bd9c79 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.26 1997/10/15 10:05:23 phk Exp $ + * $Id: lfs_vnops.c,v 1.27 1997/10/15 13:23:52 phk Exp $ */ #include <sys/param.h> @@ -56,6 +56,7 @@ #include <ufs/ufs/quota.h> #include <ufs/ufs/inode.h> +#include <ufs/ufs/ufsmount.h> #include <ufs/ufs/ufs_extern.h> #include <ufs/lfs/lfs.h> @@ -73,17 +74,12 @@ static int lfs_write __P((struct vop_write_args *)); vop_t **lfs_vnodeop_p; static struct vnodeopv_entry_desc lfs_vnodeop_entries[] = { { &vop_default_desc, (vop_t *) ufs_vnoperate }, - - { &vop_blkatoff_desc, (vop_t *) lfs_blkatoff }, { &vop_bwrite_desc, (vop_t *) lfs_bwrite }, { &vop_close_desc, (vop_t *) lfs_close }, { &vop_fsync_desc, (vop_t *) lfs_fsync }, { &vop_getattr_desc, (vop_t *) lfs_getattr }, { &vop_read_desc, (vop_t *) lfs_read }, - { &vop_truncate_desc, (vop_t *) lfs_truncate }, { &vop_update_desc, (vop_t *) lfs_update }, - { &vop_valloc_desc, (vop_t *) lfs_valloc }, - { &vop_vfree_desc, (vop_t *) lfs_vfree }, { &vop_write_desc, (vop_t *) lfs_write }, { &vop_lookup_desc, (vop_t *) ufs_lookup }, { NULL, NULL } @@ -97,7 +93,6 @@ static struct vnodeopv_entry_desc lfs_specop_entries[] = { { &vop_bwrite_desc, (vop_t *) lfs_bwrite }, { &vop_getattr_desc, (vop_t *) lfs_getattr }, { &vop_update_desc, (vop_t *) lfs_update }, - { &vop_vfree_desc, (vop_t *) lfs_vfree }, { NULL, NULL } }; static struct vnodeopv_desc lfs_specop_opv_desc = @@ -109,7 +104,6 @@ static struct vnodeopv_entry_desc lfs_fifoop_entries[] = { { &vop_bwrite_desc, (vop_t *) lfs_bwrite }, { &vop_getattr_desc, (vop_t *) lfs_getattr }, { &vop_update_desc, (vop_t *) lfs_update }, - { &vop_vfree_desc, (vop_t *) lfs_vfree }, { NULL, NULL } }; static struct vnodeopv_desc lfs_fifoop_opv_desc = diff --git a/sys/ufs/mfs/mfs_extern.h b/sys/ufs/mfs/mfs_extern.h index 6b3dc8b4864d..465e434b17a2 100644 --- a/sys/ufs/mfs/mfs_extern.h +++ b/sys/ufs/mfs/mfs_extern.h @@ -31,7 +31,7 @@ * SUCH DAMAGE. * * @(#)mfs_extern.h 8.4 (Berkeley) 3/30/95 - * $Id$ + * $Id: mfs_extern.h,v 1.9 1997/02/22 09:47:31 peter Exp $ */ #ifndef _UFS_MFS_MFS_EXTERN_H_ @@ -44,6 +44,4 @@ void mfs_doio __P((struct buf *bp, caddr_t base)); int mfs_mountfs __P((struct vnode *, struct mount *, struct proc *)); int mfs_mountroot __P((void)); -#define mfs_revoke vop_revoke - #endif /* !_UFS_MFS_MFS_EXTERN_H_ */ diff --git a/sys/ufs/mfs/mfs_vnops.c b/sys/ufs/mfs/mfs_vnops.c index ce18df55ad4d..0c552bd437d6 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.23 1997/10/15 10:05:29 phk Exp $ + * $Id: mfs_vnops.c,v 1.24 1997/10/15 13:23:57 phk Exp $ */ #include <sys/param.h> @@ -66,48 +66,19 @@ static int mfs_strategy __P((struct vop_strategy_args *)); /* XXX */ */ vop_t **mfs_vnodeop_p; static struct vnodeopv_entry_desc mfs_vnodeop_entries[] = { - { &vop_default_desc, (vop_t *) vn_default_error }, - { &vop_abortop_desc, (vop_t *) mfs_abortop }, - { &vop_access_desc, (vop_t *) mfs_access }, - { &vop_advlock_desc, (vop_t *) mfs_advlock }, - { &vop_blkatoff_desc, (vop_t *) mfs_blkatoff }, + { &vop_default_desc, (vop_t *) mfs_badop }, { &vop_bmap_desc, (vop_t *) mfs_bmap }, - { &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 *) mfs_fsync }, - { &vop_getattr_desc, (vop_t *) mfs_getattr }, { &vop_inactive_desc, (vop_t *) mfs_inactive }, { &vop_ioctl_desc, (vop_t *) mfs_ioctl }, - { &vop_islocked_desc, (vop_t *) mfs_islocked }, - { &vop_link_desc, (vop_t *) mfs_link }, - { &vop_lock_desc, (vop_t *) mfs_lock }, - { &vop_lookup_desc, (vop_t *) mfs_lookup }, - { &vop_mkdir_desc, (vop_t *) mfs_mkdir }, - { &vop_mknod_desc, (vop_t *) mfs_mknod }, - { &vop_mmap_desc, (vop_t *) mfs_mmap }, + { &vop_islocked_desc, (vop_t *) vop_noislocked }, + { &vop_lock_desc, (vop_t *) vop_nolock }, { &vop_open_desc, (vop_t *) mfs_open }, - { &vop_pathconf_desc, (vop_t *) mfs_pathconf }, - { &vop_poll_desc, (vop_t *) mfs_poll }, { &vop_print_desc, (vop_t *) mfs_print }, - { &vop_read_desc, (vop_t *) mfs_read }, - { &vop_readdir_desc, (vop_t *) mfs_readdir }, - { &vop_readlink_desc, (vop_t *) mfs_readlink }, { &vop_reclaim_desc, (vop_t *) ufs_reclaim }, - { &vop_remove_desc, (vop_t *) mfs_remove }, - { &vop_rename_desc, (vop_t *) mfs_rename }, - { &vop_revoke_desc, (vop_t *) mfs_revoke }, - { &vop_rmdir_desc, (vop_t *) mfs_rmdir }, - { &vop_seek_desc, (vop_t *) mfs_seek }, - { &vop_setattr_desc, (vop_t *) mfs_setattr }, { &vop_strategy_desc, (vop_t *) mfs_strategy }, - { &vop_symlink_desc, (vop_t *) mfs_symlink }, - { &vop_truncate_desc, (vop_t *) mfs_truncate }, - { &vop_unlock_desc, (vop_t *) mfs_unlock }, - { &vop_update_desc, (vop_t *) mfs_update }, - { &vop_valloc_desc, (vop_t *) mfs_valloc }, - { &vop_vfree_desc, (vop_t *) mfs_vfree }, - { &vop_write_desc, (vop_t *) mfs_write }, + { &vop_unlock_desc, (vop_t *) vop_nounlock }, { NULL, NULL } }; static struct vnodeopv_desc mfs_vnodeop_opv_desc = diff --git a/sys/ufs/mfs/mfsnode.h b/sys/ufs/mfs/mfsnode.h index 53fe40a897ce..34b7b6bfe236 100644 --- a/sys/ufs/mfs/mfsnode.h +++ b/sys/ufs/mfs/mfsnode.h @@ -31,7 +31,7 @@ * SUCH DAMAGE. * * @(#)mfsnode.h 8.3 (Berkeley) 5/19/95 - * $Id: mfsnode.h,v 1.8 1997/02/22 09:47:34 peter Exp $ + * $Id: mfsnode.h,v 1.9 1997/09/14 02:58:08 peter Exp $ */ #ifndef _UFS_MFS_MFSNODE_H_ @@ -57,37 +57,4 @@ struct mfsnode { #define VTOMFS(vp) ((struct mfsnode *)(vp)->v_data) #define MFSTOV(mfsp) ((mfsp)->mfs_vnode) -/* Prototypes for MFS operations on vnodes. */ -#define mfs_lookup ((int (*) __P((struct vop_lookup_args *)))mfs_badop) -#define mfs_create ((int (*) __P((struct vop_create_args *)))mfs_badop) -#define mfs_mknod ((int (*) __P((struct vop_mknod_args *)))mfs_badop) -#define mfs_access ((int (*) __P((struct vop_access_args *)))mfs_badop) -#define mfs_getattr ((int (*) __P((struct vop_getattr_args *)))mfs_badop) -#define mfs_setattr ((int (*) __P((struct vop_setattr_args *)))mfs_badop) -#define mfs_read ((int (*) __P((struct vop_read_args *)))mfs_badop) -#define mfs_write ((int (*) __P((struct vop_write_args *)))mfs_badop) -#define mfs_poll ((int (*) __P((struct vop_poll_args *)))mfs_badop) -#define mfs_mmap ((int (*) __P((struct vop_mmap_args *)))mfs_badop) -#define mfs_seek ((int (*) __P((struct vop_seek_args *)))mfs_badop) -#define mfs_remove ((int (*) __P((struct vop_remove_args *)))mfs_badop) -#define mfs_link ((int (*) __P((struct vop_link_args *)))mfs_badop) -#define mfs_rename ((int (*) __P((struct vop_rename_args *)))mfs_badop) -#define mfs_mkdir ((int (*) __P((struct vop_mkdir_args *)))mfs_badop) -#define mfs_rmdir ((int (*) __P((struct vop_rmdir_args *)))mfs_badop) -#define mfs_symlink ((int (*) __P((struct vop_symlink_args *)))mfs_badop) -#define mfs_readdir ((int (*) __P((struct vop_readdir_args *)))mfs_badop) -#define mfs_readlink ((int (*) __P((struct vop_readlink_args *)))mfs_badop) -#define mfs_abortop ((int (*) __P((struct vop_abortop_args *)))mfs_badop) -#define mfs_lock ((int (*) __P((struct vop_lock_args *)))vop_nolock) -#define mfs_unlock ((int (*) __P((struct vop_unlock_args *)))vop_nounlock) -#define mfs_islocked ((int(*) __P((struct vop_islocked_args *)))vop_noislocked) -#define mfs_pathconf ((int (*) __P((struct vop_pathconf_args *)))mfs_badop) -#define mfs_advlock ((int (*) __P((struct vop_advlock_args *)))mfs_badop) -#define mfs_blkatoff ((int (*) __P((struct vop_blkatoff_args *)))mfs_badop) -#define mfs_valloc ((int (*) __P((struct vop_valloc_args *)))mfs_badop) -#define mfs_vfree ((int (*) __P((struct vop_vfree_args *)))mfs_badop) -#define mfs_truncate ((int (*) __P((struct vop_truncate_args *)))mfs_badop) -#define mfs_update ((int (*) __P((struct vop_update_args *)))mfs_badop) -#define mfs_bwrite ((int (*) __P((struct vop_bwrite_args *)))vn_bwrite) - #endif diff --git a/sys/ufs/ufs/ufs_extern.h b/sys/ufs/ufs/ufs_extern.h index 1c565d4884ed..e897ede4ee2b 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.18 1997/10/10 18:18:12 phk Exp $ + * $Id: ufs_extern.h,v 1.19 1997/10/15 13:24:02 phk Exp $ */ #ifndef _UFS_UFS_EXTERN_H_ @@ -90,11 +90,6 @@ int ufs_inactive __P((struct vop_inactive_args *)); int ufs_init __P((struct vfsconf *)); int ufs_ioctl __P((struct vop_ioctl_args *)); int ufs_islocked __P((struct vop_islocked_args *)); -#ifdef NFS -#define ufs_lease_check lease_check -#else -#define ufs_lease_check ((int (*) __P((struct vop_lease_args *)))nullop) -#endif int ufs_link __P((struct vop_link_args *)); int ufs_lock __P((struct vop_lock_args *)); int ufs_lookup __P((struct vop_cachedlookup_args *)); @@ -110,11 +105,9 @@ int ufs_readlink __P((struct vop_readlink_args *)); int ufs_reclaim __P((struct vop_reclaim_args *)); int ufs_remove __P((struct vop_remove_args *)); int ufs_rename __P((struct vop_rename_args *)); -#define ufs_revoke vop_revoke int ufs_rmdir __P((struct vop_rmdir_args *)); int ufs_root __P((struct mount *, struct vnode **)); int ufs_seek __P((struct vop_seek_args *)); -#define ufs_poll vop_nopoll int ufs_setattr __P((struct vop_setattr_args *)); int ufs_start __P((struct mount *, int, struct proc *)); int ufs_strategy __P((struct vop_strategy_args *)); diff --git a/sys/ufs/ufs/ufs_inode.c b/sys/ufs/ufs/ufs_inode.c index 812e86d393a6..e635f29d3d6e 100644 --- a/sys/ufs/ufs/ufs_inode.c +++ b/sys/ufs/ufs/ufs_inode.c @@ -36,7 +36,7 @@ * SUCH DAMAGE. * * @(#)ufs_inode.c 8.9 (Berkeley) 5/14/95 - * $Id: ufs_inode.c,v 1.17 1997/10/14 14:22:31 phk Exp $ + * $Id: ufs_inode.c,v 1.18 1997/10/14 18:46:48 phk Exp $ */ #include "opt_quota.h" @@ -83,12 +83,12 @@ ufs_inactive(ap) if (!getinoquota(ip)) (void)chkiq(ip, -1, NOCRED, 0); #endif - error = VOP_TRUNCATE(vp, (off_t)0, 0, NOCRED, p); + error = UFS_TRUNCATE(vp, (off_t)0, 0, NOCRED, p); ip->i_rdev = 0; mode = ip->i_mode; ip->i_mode = 0; ip->i_flag |= IN_CHANGE | IN_UPDATE; - VOP_VFREE(vp, ip->i_number, mode); + UFS_VFREE(vp, ip->i_number, mode); } if (ip->i_flag & (IN_ACCESS | IN_CHANGE | IN_MODIFIED | IN_UPDATE)) { gettime(&tv); diff --git a/sys/ufs/ufs/ufs_lookup.c b/sys/ufs/ufs/ufs_lookup.c index e0eb989e220c..5f0201a6b668 100644 --- a/sys/ufs/ufs/ufs_lookup.c +++ b/sys/ufs/ufs/ufs_lookup.c @@ -36,7 +36,7 @@ * SUCH DAMAGE. * * @(#)ufs_lookup.c 8.15 (Berkeley) 6/16/95 - * $Id: ufs_lookup.c,v 1.16 1997/09/02 20:06:58 bde Exp $ + * $Id: ufs_lookup.c,v 1.17 1997/09/10 19:47:37 phk Exp $ */ #include <sys/param.h> @@ -185,7 +185,7 @@ ufs_lookup(ap) } else { dp->i_offset = dp->i_diroff; if ((entryoffsetinblock = dp->i_offset & bmask) && - (error = VOP_BLKATOFF(vdp, (off_t)dp->i_offset, NULL, &bp))) + (error = UFS_BLKATOFF(vdp, (off_t)dp->i_offset, NULL, &bp))) return (error); numdirpasses = 2; nchstats.ncs_2passes++; @@ -203,7 +203,7 @@ searchloop: if (bp != NULL) brelse(bp); error = - VOP_BLKATOFF(vdp, (off_t)dp->i_offset, NULL, &bp); + UFS_BLKATOFF(vdp, (off_t)dp->i_offset, NULL, &bp); if (error) return (error); entryoffsetinblock = 0; @@ -715,7 +715,7 @@ ufs_direnter2(dvp, dirp, cr, p) /* * Get the block containing the space for the new directory entry. */ - error = VOP_BLKATOFF(dvp, (off_t)dp->i_offset, &dirbuf, &bp); + error = UFS_BLKATOFF(dvp, (off_t)dp->i_offset, &dirbuf, &bp); if (error) return (error); /* @@ -770,7 +770,7 @@ ufs_direnter2(dvp, dirp, cr, p) } dp->i_flag |= IN_CHANGE | IN_UPDATE; if (!error && dp->i_endoff && dp->i_endoff < dp->i_size) - error = VOP_TRUNCATE(dvp, (off_t)dp->i_endoff, IO_SYNC, cr, p); + error = UFS_TRUNCATE(dvp, (off_t)dp->i_endoff, IO_SYNC, cr, p); return (error); } @@ -803,7 +803,7 @@ ufs_dirremove(dvp, cnp) * Whiteout entry: set d_ino to WINO. */ if (error = - VOP_BLKATOFF(dvp, (off_t)dp->i_offset, (char **)&ep, &bp)) + UFS_BLKATOFF(dvp, (off_t)dp->i_offset, (char **)&ep, &bp)) return (error); ep->d_ino = WINO; ep->d_type = DT_WHT; @@ -817,7 +817,7 @@ ufs_dirremove(dvp, cnp) * First entry in block: set d_ino to zero. */ error = - VOP_BLKATOFF(dvp, (off_t)dp->i_offset, (char **)&ep, &bp); + UFS_BLKATOFF(dvp, (off_t)dp->i_offset, (char **)&ep, &bp); if (error) return (error); ep->d_ino = 0; @@ -828,7 +828,7 @@ ufs_dirremove(dvp, cnp) /* * Collapse new free space into previous entry. */ - error = VOP_BLKATOFF(dvp, (off_t)(dp->i_offset - dp->i_count), + error = UFS_BLKATOFF(dvp, (off_t)(dp->i_offset - dp->i_count), (char **)&ep, &bp); if (error) return (error); @@ -858,7 +858,7 @@ ufs_dirrewrite(dp, ip, cnp) struct vnode *vdp = ITOV(dp); int error; - error = VOP_BLKATOFF(vdp, (off_t)dp->i_offset, (char **)&ep, &bp); + error = UFS_BLKATOFF(vdp, (off_t)dp->i_offset, (char **)&ep, &bp); if (error) return (error); ep->d_ino = ip->i_number; diff --git a/sys/ufs/ufs/ufs_readwrite.c b/sys/ufs/ufs/ufs_readwrite.c index 929a289f015b..afbe95f56df5 100644 --- a/sys/ufs/ufs/ufs_readwrite.c +++ b/sys/ufs/ufs/ufs_readwrite.c @@ -31,7 +31,7 @@ * SUCH DAMAGE. * * @(#)ufs_readwrite.c 8.11 (Berkeley) 5/8/95 - * $Id: ufs_readwrite.c,v 1.30 1997/08/25 08:18:39 kato Exp $ + * $Id: ufs_readwrite.c,v 1.31 1997/09/27 13:40:20 kato Exp $ */ #ifdef LFS_READWRITE @@ -305,7 +305,7 @@ WRITE(ap) ip->i_mode &= ~(ISUID | ISGID); if (error) { if (ioflag & IO_UNIT) { - (void)VOP_TRUNCATE(vp, osize, + (void)UFS_TRUNCATE(vp, osize, ioflag & IO_SYNC, ap->a_cred, uio->uio_procp); uio->uio_offset -= resid - uio->uio_resid; uio->uio_resid = resid; diff --git a/sys/ufs/ufs/ufs_vnops.c b/sys/ufs/ufs/ufs_vnops.c index 89166b313013..1e67920c92b1 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.58 1997/09/21 04:24:14 dyson Exp $ + * $Id: ufs_vnops.c,v 1.59 1997/10/15 13:24:07 phk Exp $ */ #include "opt_quota.h" @@ -415,7 +415,7 @@ ufs_setattr(ap) return (EROFS); break; } - if (error = VOP_TRUNCATE(vp, vap->va_size, 0, cred, p)) + if (error = UFS_TRUNCATE(vp, vap->va_size, 0, cred, p)) return (error); } ip = VTOI(vp); @@ -1156,7 +1156,7 @@ abortit: if (doingdirectory) { if (--xp->i_nlink != 0) panic("ufs_rename: linked directory"); - error = VOP_TRUNCATE(tvp, (off_t)0, IO_SYNC, + error = UFS_TRUNCATE(tvp, (off_t)0, IO_SYNC, tcnp->cn_cred, tcnp->cn_proc); } xp->i_flag |= IN_CHANGE; @@ -1334,7 +1334,7 @@ ufs_mkdir(ap) * but not have it entered in the parent directory. The entry is * made later after writing "." and ".." entries. */ - error = VOP_VALLOC(dvp, dmode, cnp->cn_cred, &tvp); + error = UFS_VALLOC(dvp, dmode, cnp->cn_cred, &tvp); if (error) goto out; ip = VTOI(tvp); @@ -1344,7 +1344,7 @@ ufs_mkdir(ap) if ((error = getinoquota(ip)) || (error = chkiq(ip, 1, cnp->cn_cred, 0))) { zfree(namei_zone, cnp->cn_pnbuf); - VOP_VFREE(tvp, ip->i_number, dmode); + UFS_VFREE(tvp, ip->i_number, dmode); vput(tvp); vput(dvp); return (error); @@ -1520,7 +1520,7 @@ ufs_rmdir(ap) * worry about them later. */ ip->i_nlink -= 2; - error = VOP_TRUNCATE(vp, (off_t)0, IO_SYNC, cnp->cn_cred, + error = UFS_TRUNCATE(vp, (off_t)0, IO_SYNC, cnp->cn_cred, cnp->cn_proc); cache_purge(ITOV(ip)); out: @@ -2092,7 +2092,7 @@ ufs_makeinode(mode, dvp, vpp, cnp) if ((mode & IFMT) == 0) mode |= IFREG; - error = VOP_VALLOC(dvp, mode, cnp->cn_cred, &tvp); + error = UFS_VALLOC(dvp, mode, cnp->cn_cred, &tvp); if (error) { zfree(namei_zone, cnp->cn_pnbuf); vput(dvp); @@ -2105,7 +2105,7 @@ ufs_makeinode(mode, dvp, vpp, cnp) if ((error = getinoquota(ip)) || (error = chkiq(ip, 1, cnp->cn_cred, 0))) { zfree(namei_zone, cnp->cn_pnbuf); - VOP_VFREE(tvp, ip->i_number, mode); + UFS_VFREE(tvp, ip->i_number, mode); vput(tvp); vput(dvp); return (error); @@ -2174,23 +2174,16 @@ ufs_missingop(ap) 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 }, @@ -2198,7 +2191,6 @@ static struct vnodeopv_entry_desc ufs_vnodeop_entries[] = { { &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 }, @@ -2207,14 +2199,12 @@ static struct vnodeopv_entry_desc ufs_vnodeop_entries[] = { { &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 }, @@ -2230,13 +2220,9 @@ static struct vnodeopv_desc ufs_vnodeop_opv_desc = 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 }, @@ -2256,13 +2242,9 @@ static struct vnodeopv_desc ufs_specop_opv_desc = 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 }, diff --git a/sys/ufs/ufs/ufsmount.h b/sys/ufs/ufs/ufsmount.h index d57dd59c8936..50bfe575f51e 100644 --- a/sys/ufs/ufs/ufsmount.h +++ b/sys/ufs/ufs/ufsmount.h @@ -31,7 +31,7 @@ * SUCH DAMAGE. * * @(#)ufsmount.h 8.6 (Berkeley) 3/30/95 - * $Id: ufsmount.h,v 1.9 1997/10/10 18:18:13 phk Exp $ + * $Id: ufsmount.h,v 1.10 1997/10/12 20:26:28 phk Exp $ */ #ifndef _UFS_UFS_UFSMOUNT_H_ @@ -97,8 +97,17 @@ struct ufsmount { struct netexport um_export; /* export information */ int64_t um_savedmaxfilesize; /* XXX - limit maxfilesize */ struct malloc_type *um_malloctype; /* The inodes malloctype */ + int (*um_blkatoff) __P((struct vnode *, off_t, char **, struct buf **)); + int (*um_truncate) __P((struct vnode *, off_t, int, struct ucred *, struct proc *)); + int (*um_valloc) __P((struct vnode *, int, struct ucred *, struct vnode **)); + int (*um_vfree) __P((struct vnode *, ino_t, int)); }; +#define UFS_BLKATOFF(aa, bb, cc, dd) VFSTOUFS((aa)->v_mount)->um_blkatoff(aa, bb, cc, dd) +#define UFS_TRUNCATE(aa, bb, cc, dd, ee) VFSTOUFS((aa)->v_mount)->um_truncate(aa, bb, cc, dd, ee) +#define UFS_VALLOC(aa, bb, cc, dd) VFSTOUFS((aa)->v_mount)->um_valloc(aa, bb, cc, dd) +#define UFS_VFREE(aa, bb, cc) VFSTOUFS((aa)->v_mount)->um_vfree(aa, bb, cc) + /* * Flags describing the state of quotas. */ |