diff options
Diffstat (limited to 'sys/ufs')
-rw-r--r-- | sys/ufs/ffs/ffs_alloc.c | 4 | ||||
-rw-r--r-- | sys/ufs/ffs/ffs_extern.h | 4 | ||||
-rw-r--r-- | sys/ufs/ffs/ffs_inode.c | 33 | ||||
-rw-r--r-- | sys/ufs/ffs/ffs_vfsops.c | 7 | ||||
-rw-r--r-- | sys/ufs/ffs/ffs_vnops.c | 7 | ||||
-rw-r--r-- | sys/ufs/lfs/lfs_extern.h | 4 | ||||
-rw-r--r-- | sys/ufs/lfs/lfs_inode.c | 29 | ||||
-rw-r--r-- | sys/ufs/lfs/lfs_vfsops.c | 7 | ||||
-rw-r--r-- | sys/ufs/lfs/lfs_vnops.c | 7 | ||||
-rw-r--r-- | sys/ufs/mfs/mfs_vnops.c | 23 | ||||
-rw-r--r-- | sys/ufs/ufs/ufs_inode.c | 4 | ||||
-rw-r--r-- | sys/ufs/ufs/ufs_readwrite.c | 4 | ||||
-rw-r--r-- | sys/ufs/ufs/ufs_vnops.c | 100 | ||||
-rw-r--r-- | sys/ufs/ufs/ufsmount.h | 4 |
14 files changed, 67 insertions, 170 deletions
diff --git a/sys/ufs/ffs/ffs_alloc.c b/sys/ufs/ffs/ffs_alloc.c index 85ef1b6..7f8d84d 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.39 1997/10/14 18:46:41 phk Exp $ + * $Id: ffs_alloc.c,v 1.40 1997/10/16 10:49:19 phk Exp $ */ #include "opt_quota.h" @@ -486,7 +486,7 @@ ffs_reallocblks(ap) ip->i_flag |= IN_CHANGE | IN_UPDATE; if (!doasyncfree) { gettime(&tv); - VOP_UPDATE(vp, &tv, &tv, 1); + UFS_UPDATE(vp, &tv, &tv, 1); } } if (ssize < len) diff --git a/sys/ufs/ffs/ffs_extern.h b/sys/ufs/ffs/ffs_extern.h index 4aa6118..38701c5 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.18 1997/10/10 18:16:58 phk Exp $ + * $Id: ffs_extern.h,v 1.19 1997/10/16 10:49:22 phk Exp $ */ #ifndef _UFS_FFS_EXTERN_H @@ -86,7 +86,7 @@ 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 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_update __P((struct vnode *, struct timeval *, struct timeval *, int)); int ffs_valloc __P((struct vnode *, int, struct ucred *, struct vnode **)); int ffs_vfree __P((struct vnode *, ino_t, int)); diff --git a/sys/ufs/ffs/ffs_inode.c b/sys/ufs/ffs/ffs_inode.c index 78cf65c..92bb2a7 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.27 1997/09/02 20:06:44 bde Exp $ + * $Id: ffs_inode.c,v 1.28 1997/10/16 10:49:28 phk Exp $ */ #include "opt_quota.h" @@ -50,6 +50,7 @@ #include <vm/vm_extern.h> #include <ufs/ufs/quota.h> +#include <ufs/ufs/ufsmount.h> #include <ufs/ufs/inode.h> #include <ufs/ffs/fs.h> @@ -68,13 +69,11 @@ static int ffs_indirtrunc __P((struct inode *, ufs_daddr_t, ufs_daddr_t, * write of the inode to complete. */ int -ffs_update(ap) - struct vop_update_args /* { - struct vnode *a_vp; - struct timeval *a_access; - struct timeval *a_modify; - int a_waitfor; - } */ *ap; +ffs_update(vp, access, modify, waitfor) + struct vnode *vp; + struct timeval *access; + struct timeval *modify; + int waitfor; { register struct fs *fs; struct buf *bp; @@ -82,8 +81,8 @@ ffs_update(ap) int error; time_t tv_sec; - ip = VTOI(ap->a_vp); - if (ap->a_vp->v_mount->mnt_flag & MNT_RDONLY) { + ip = VTOI(vp); + if (vp->v_mount->mnt_flag & MNT_RDONLY) { ip->i_flag &= ~(IN_ACCESS | IN_CHANGE | IN_MODIFIED | IN_UPDATE); return (0); @@ -106,10 +105,10 @@ ffs_update(ap) tv_sec = time.tv_sec; if (ip->i_flag & IN_ACCESS) ip->i_atime = - (ap->a_access == &time ? tv_sec : ap->a_access->tv_sec); + (access == &time ? tv_sec : access->tv_sec); if (ip->i_flag & IN_UPDATE) { ip->i_mtime = - (ap->a_modify == &time ? tv_sec : ap->a_modify->tv_sec); + (modify == &time ? tv_sec : modify->tv_sec); ip->i_modrev++; } if (ip->i_flag & IN_CHANGE) @@ -132,7 +131,7 @@ ffs_update(ap) } *((struct dinode *)bp->b_data + ino_to_fsbo(fs, ip->i_number)) = ip->i_din; - if (ap->a_waitfor && (ap->a_vp->v_mount->mnt_flag & MNT_ASYNC) == 0) + if (waitfor && (vp->v_mount->mnt_flag & MNT_ASYNC) == 0) return (bwrite(bp)); else { bp->b_flags |= B_CLUSTEROK; @@ -186,11 +185,11 @@ ffs_truncate(vp, length, flags, cred, p) bzero((char *)&oip->i_shortlink, (u_int)oip->i_size); oip->i_size = 0; oip->i_flag |= IN_CHANGE | IN_UPDATE; - return (VOP_UPDATE(ovp, &tv, &tv, 1)); + return (UFS_UPDATE(ovp, &tv, &tv, 1)); } if (oip->i_size == length) { oip->i_flag |= IN_CHANGE | IN_UPDATE; - return (VOP_UPDATE(ovp, &tv, &tv, 0)); + return (UFS_UPDATE(ovp, &tv, &tv, 0)); } #ifdef QUOTA error = getinoquota(oip); @@ -222,7 +221,7 @@ ffs_truncate(vp, length, flags, cred, p) else bawrite(bp); oip->i_flag |= IN_CHANGE | IN_UPDATE; - return (VOP_UPDATE(ovp, &tv, &tv, 1)); + return (UFS_UPDATE(ovp, &tv, &tv, 1)); } /* * Shorten the size of the file. If the file is not being @@ -280,7 +279,7 @@ ffs_truncate(vp, length, flags, cred, p) for (i = NDADDR - 1; i > lastblock; i--) oip->i_db[i] = 0; oip->i_flag |= IN_CHANGE | IN_UPDATE; - error = VOP_UPDATE(ovp, &tv, &tv, ((length > 0) ? 0 : 1)); + error = UFS_UPDATE(ovp, &tv, &tv, ((length > 0) ? 0 : 1)); if (error) allerror = error; /* diff --git a/sys/ufs/ffs/ffs_vfsops.c b/sys/ufs/ffs/ffs_vfsops.c index c053477..45d8a0f 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.59 1997/10/12 20:26:12 phk Exp $ + * $Id: ffs_vfsops.c,v 1.60 1997/10/16 10:49:33 phk Exp $ */ #include "opt_quota.h" @@ -557,6 +557,7 @@ ffs_mountfs(devvp, mp, p, malloctype) M_WAITOK); ump->um_blkatoff = ffs_blkatoff; ump->um_truncate = ffs_truncate; + ump->um_update = ffs_update; ump->um_valloc = ffs_valloc; ump->um_vfree = ffs_vfree; bcopy(bp->b_data, ump->um_fs, (u_int)fs->fs_sbsize); @@ -877,8 +878,8 @@ loop: simple_unlock(&mntvnode_slock); simple_unlock(&vp->v_interlock); gettime(&tv); - /* VOP_UPDATE(vp, &tv, &tv, waitfor == MNT_WAIT); */ - VOP_UPDATE(vp, &tv, &tv, 0); + /* UFS_UPDATE(vp, &tv, &tv, waitfor == MNT_WAIT); */ + UFS_UPDATE(vp, &tv, &tv, 0); simple_lock(&mntvnode_slock); } } diff --git a/sys/ufs/ffs/ffs_vnops.c b/sys/ufs/ffs/ffs_vnops.c index 254d5e5..7400ed5 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.34 1997/10/15 13:23:47 phk Exp $ + * $Id: ffs_vnops.c,v 1.35 1997/10/16 10:49:35 phk Exp $ */ #include <sys/param.h> @@ -77,7 +77,6 @@ static struct vnodeopv_entry_desc ffs_vnodeop_entries[] = { { &vop_getpages_desc, (vop_t *) ffs_getpages }, { &vop_read_desc, (vop_t *) ffs_read }, { &vop_reallocblks_desc, (vop_t *) ffs_reallocblks }, - { &vop_update_desc, (vop_t *) ffs_update }, { &vop_write_desc, (vop_t *) ffs_write }, { NULL, NULL } }; @@ -88,7 +87,6 @@ vop_t **ffs_specop_p; 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 }, { NULL, NULL } }; static struct vnodeopv_desc ffs_specop_opv_desc = @@ -98,7 +96,6 @@ vop_t **ffs_fifoop_p; 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 }, { NULL, NULL } }; static struct vnodeopv_desc ffs_fifoop_opv_desc = @@ -187,6 +184,6 @@ loop: } gettime(&tv); - return (VOP_UPDATE(ap->a_vp, &tv, &tv, ap->a_waitfor == MNT_WAIT)); + return (UFS_UPDATE(ap->a_vp, &tv, &tv, ap->a_waitfor == MNT_WAIT)); } diff --git a/sys/ufs/lfs/lfs_extern.h b/sys/ufs/lfs/lfs_extern.h index 030fedd..d930f4d 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.17 1997/10/12 20:26:15 phk Exp $ + * $Id: lfs_extern.h,v 1.18 1997/10/16 10:49:44 phk Exp $ */ #ifndef _UFS_LFS_LFS_EXTERN_H_ @@ -68,7 +68,7 @@ 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 vnode *, off_t, int, struct ucred *, struct proc *)); -int lfs_update __P((struct vop_update_args *)); +int lfs_update __P((struct vnode *, struct timeval *, struct timeval *, int)); void lfs_updatemeta __P((struct segment *)); int lfs_valloc __P((struct vnode *, int, struct ucred *, struct vnode **)); int lfs_vcreate __P((struct mount *, ino_t, struct vnode **)); diff --git a/sys/ufs/lfs/lfs_inode.c b/sys/ufs/lfs/lfs_inode.c index 6b03151..39edcae 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.18 1997/09/02 20:06:48 bde Exp $ + * $Id: lfs_inode.c,v 1.19 1997/10/16 10:49:47 phk Exp $ */ #include "opt_quota.h" @@ -73,15 +73,12 @@ lfs_ifind(fs, ino, dip) } int -lfs_update(ap) - struct vop_update_args /* { - struct vnode *a_vp; - struct timeval *a_access; - struct timeval *a_modify; - int a_waitfor; - } */ *ap; +lfs_update(vp, access, modify, waitfor) + struct vnode *vp; + struct timeval *access; + struct timeval *modify; + int waitfor; { - struct vnode *vp = ap->a_vp; struct inode *ip; int error; @@ -104,9 +101,9 @@ lfs_update(ap) return(0); if (ip->i_flag & IN_ACCESS) - ip->i_atime = ap->a_access->tv_sec; + ip->i_atime = access->tv_sec; if (ip->i_flag & IN_UPDATE) { - ip->i_mtime = ap->a_modify->tv_sec; + ip->i_mtime = modify->tv_sec; (ip)->i_modrev++; } if (ip->i_flag & IN_CHANGE) @@ -118,8 +115,8 @@ lfs_update(ap) ip->i_flag |= IN_MODIFIED; /* If sync, push back the vnode and any dirty blocks it may have. */ - error = (ap->a_waitfor & LFS_SYNC ? lfs_vflush(vp) : 0); - if(ap->a_waitfor & LFS_SYNC && vp->v_dirtyblkhd.lh_first != NULL) + error = (waitfor & LFS_SYNC ? lfs_vflush(vp) : 0); + if(waitfor & LFS_SYNC && vp->v_dirtyblkhd.lh_first != NULL) panic("lfs_update: dirty bufs"); return( error ); @@ -186,7 +183,7 @@ lfs_truncate(vp, length, flags, cred, p) bzero((char *)&ip->i_shortlink, (u_int)ip->i_size); ip->i_size = 0; ip->i_flag |= IN_CHANGE | IN_UPDATE; - return (VOP_UPDATE(vp, &tv, &tv, 0)); + return (UFS_UPDATE(vp, &tv, &tv, 0)); } vnode_pager_setsize(vp, (u_long)length); @@ -195,7 +192,7 @@ lfs_truncate(vp, length, flags, cred, p) /* If length is larger than the file, just update the times. */ if (ip->i_size <= length) { ip->i_flag |= IN_CHANGE | IN_UPDATE; - return (VOP_UPDATE(vp, &tv, &tv, 0)); + return (UFS_UPDATE(vp, &tv, &tv, 0)); } /* @@ -376,6 +373,6 @@ lfs_truncate(vp, length, flags, cred, p) fs->lfs_avail += fragstodb(fs, a_released); e1 = vinvalbuf(vp, (length > 0) ? V_SAVE : 0, cred, p, 0, 0); - e2 = VOP_UPDATE(vp, &tv, &tv, 0); + e2 = UFS_UPDATE(vp, &tv, &tv, 0); return (e1 ? e1 : e2 ? e2 : 0); } diff --git a/sys/ufs/lfs/lfs_vfsops.c b/sys/ufs/lfs/lfs_vfsops.c index aa54c28..c543639 100644 --- a/sys/ufs/lfs/lfs_vfsops.c +++ b/sys/ufs/lfs/lfs_vfsops.c @@ -31,7 +31,7 @@ * SUCH DAMAGE. * * @(#)lfs_vfsops.c 8.20 (Berkeley) 6/10/95 - * $Id: lfs_vfsops.c,v 1.24 1997/10/12 20:26:17 phk Exp $ + * $Id: lfs_vfsops.c,v 1.25 1997/10/16 08:16:34 julian Exp $ */ #include "opt_quota.h" @@ -385,6 +385,11 @@ lfs_mountfs(devvp, mp, p) ump = (struct ufsmount *)malloc(sizeof *ump, M_UFSMNT, M_WAITOK); bzero(ump, sizeof *ump); ump->um_malloctype = M_LFSNODE; + ump->um_blkatoff = lfs_blkatoff; + ump->um_truncate = lfs_truncate; + ump->um_update = lfs_update; + ump->um_valloc = lfs_valloc; + ump->um_vfree = lfs_vfree; fs = ump->um_lfs = malloc(sizeof(struct lfs), M_UFSMNT, M_WAITOK); bcopy(bp->b_data, fs, sizeof(struct lfs)); if (sizeof(struct lfs) < LFS_SBPAD) /* XXX why? */ diff --git a/sys/ufs/lfs/lfs_vnops.c b/sys/ufs/lfs/lfs_vnops.c index a440b2b..fd383a7 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.27 1997/10/15 13:23:52 phk Exp $ + * $Id: lfs_vnops.c,v 1.28 1997/10/16 10:49:53 phk Exp $ */ #include <sys/param.h> @@ -79,7 +79,6 @@ static struct vnodeopv_entry_desc lfs_vnodeop_entries[] = { { &vop_fsync_desc, (vop_t *) lfs_fsync }, { &vop_getattr_desc, (vop_t *) lfs_getattr }, { &vop_read_desc, (vop_t *) lfs_read }, - { &vop_update_desc, (vop_t *) lfs_update }, { &vop_write_desc, (vop_t *) lfs_write }, { &vop_lookup_desc, (vop_t *) ufs_lookup }, { NULL, NULL } @@ -92,7 +91,6 @@ static struct vnodeopv_entry_desc lfs_specop_entries[] = { { &vop_default_desc, (vop_t *) ufs_vnoperatespec }, { &vop_bwrite_desc, (vop_t *) lfs_bwrite }, { &vop_getattr_desc, (vop_t *) lfs_getattr }, - { &vop_update_desc, (vop_t *) lfs_update }, { NULL, NULL } }; static struct vnodeopv_desc lfs_specop_opv_desc = @@ -103,7 +101,6 @@ static struct vnodeopv_entry_desc lfs_fifoop_entries[] = { { &vop_default_desc, (vop_t *) ufs_vnoperatefifo }, { &vop_bwrite_desc, (vop_t *) lfs_bwrite }, { &vop_getattr_desc, (vop_t *) lfs_getattr }, - { &vop_update_desc, (vop_t *) lfs_update }, { NULL, NULL } }; static struct vnodeopv_desc lfs_fifoop_opv_desc = @@ -134,7 +131,7 @@ lfs_fsync(ap) int error; gettime(&tv); - error = (VOP_UPDATE(ap->a_vp, &tv, &tv, + error = (UFS_UPDATE(ap->a_vp, &tv, &tv, ap->a_waitfor == MNT_WAIT ? LFS_SYNC : 0)); if(ap->a_waitfor == MNT_WAIT && ap->a_vp->v_dirtyblkhd.lh_first != NULL) panic("lfs_fsync: dirty bufs"); diff --git a/sys/ufs/mfs/mfs_vnops.c b/sys/ufs/mfs/mfs_vnops.c index 0c552bd..1e09958 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.24 1997/10/15 13:23:57 phk Exp $ + * $Id: mfs_vnops.c,v 1.25 1997/10/16 10:50:03 phk Exp $ */ #include <sys/param.h> @@ -56,7 +56,6 @@ static int mfs_badop __P((void)); static int mfs_bmap __P((struct vop_bmap_args *)); static int mfs_close __P((struct vop_close_args *)); static int mfs_fsync __P((struct vop_fsync_args *)); -static int mfs_ioctl __P((struct vop_ioctl_args *)); static int mfs_inactive __P((struct vop_inactive_args *)); /* XXX */ static int mfs_open __P((struct vop_open_args *)); static int mfs_print __P((struct vop_print_args *)); /* XXX */ @@ -71,7 +70,6 @@ static struct vnodeopv_entry_desc mfs_vnodeop_entries[] = { { &vop_close_desc, (vop_t *) mfs_close }, { &vop_fsync_desc, (vop_t *) mfs_fsync }, { &vop_inactive_desc, (vop_t *) mfs_inactive }, - { &vop_ioctl_desc, (vop_t *) mfs_ioctl }, { &vop_islocked_desc, (vop_t *) vop_noislocked }, { &vop_lock_desc, (vop_t *) vop_nolock }, { &vop_open_desc, (vop_t *) mfs_open }, @@ -120,25 +118,6 @@ mfs_fsync(ap) } /* - * Ioctl operation. - */ -/* ARGSUSED */ -static int -mfs_ioctl(ap) - struct vop_ioctl_args /* { - struct vnode *a_vp; - int a_command; - caddr_t a_data; - int a_fflag; - struct ucred *a_cred; - struct proc *a_p; - } */ *ap; -{ - - return (ENOTTY); -} - -/* * Pass I/O requests to the memory filesystem process. */ static int diff --git a/sys/ufs/ufs/ufs_inode.c b/sys/ufs/ufs/ufs_inode.c index e635f29..822d9df 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.18 1997/10/14 18:46:48 phk Exp $ + * $Id: ufs_inode.c,v 1.19 1997/10/16 10:50:14 phk Exp $ */ #include "opt_quota.h" @@ -92,7 +92,7 @@ ufs_inactive(ap) } if (ip->i_flag & (IN_ACCESS | IN_CHANGE | IN_MODIFIED | IN_UPDATE)) { gettime(&tv); - VOP_UPDATE(vp, &tv, &tv, 0); + UFS_UPDATE(vp, &tv, &tv, 0); } out: VOP_UNLOCK(vp, 0, p); diff --git a/sys/ufs/ufs/ufs_readwrite.c b/sys/ufs/ufs/ufs_readwrite.c index afbe95f..f9f6d06 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.31 1997/09/27 13:40:20 kato Exp $ + * $Id: ufs_readwrite.c,v 1.32 1997/10/16 10:50:21 phk Exp $ */ #ifdef LFS_READWRITE @@ -312,7 +312,7 @@ WRITE(ap) } } else if (resid > uio->uio_resid && (ioflag & IO_SYNC)) { gettime(&tv); - error = VOP_UPDATE(vp, &tv, &tv, 1); + error = UFS_UPDATE(vp, &tv, &tv, 1); } return (error); } diff --git a/sys/ufs/ufs/ufs_vnops.c b/sys/ufs/ufs/ufs_vnops.c index d653601..0a80e7f 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.60 1997/10/16 10:50:24 phk Exp $ + * $Id: ufs_vnops.c,v 1.61 1997/10/16 11:59:09 phk Exp $ */ #include "opt_quota.h" @@ -73,7 +73,6 @@ static int ufs_chown __P((struct vnode *, uid_t, gid_t, struct ucred *, struct p static int ufs_close __P((struct vop_close_args *)); static int ufs_create __P((struct vop_create_args *)); static int ufs_getattr __P((struct vop_getattr_args *)); -static int ufs_ioctl __P((struct vop_ioctl_args *)); static int ufs_islocked __P((struct vop_islocked_args *)); static int ufs_link __P((struct vop_link_args *)); static int ufs_lock __P((struct vop_lock_args *)); @@ -83,14 +82,12 @@ static int ufs_mkdir __P((struct vop_mkdir_args *)); static int ufs_mknod __P((struct vop_mknod_args *)); static int ufs_mmap __P((struct vop_mmap_args *)); static int ufs_open __P((struct vop_open_args *)); -static int ufs_pathconf __P((struct vop_pathconf_args *)); static int ufs_print __P((struct vop_print_args *)); static int ufs_readdir __P((struct vop_readdir_args *)); static int ufs_readlink __P((struct vop_readlink_args *)); static int ufs_remove __P((struct vop_remove_args *)); static int ufs_rename __P((struct vop_rename_args *)); static int ufs_rmdir __P((struct vop_rmdir_args *)); -static int ufs_seek __P((struct vop_seek_args *)); static int ufs_setattr __P((struct vop_setattr_args *)); static int ufs_strategy __P((struct vop_strategy_args *)); static int ufs_symlink __P((struct vop_symlink_args *)); @@ -468,7 +465,7 @@ ufs_setattr(ap) atimeval.tv_usec = vap->va_atime.tv_nsec / 1000; mtimeval.tv_sec = vap->va_mtime.tv_sec; mtimeval.tv_usec = vap->va_mtime.tv_nsec / 1000; - error = VOP_UPDATE(vp, &atimeval, &mtimeval, 1); + error = UFS_UPDATE(vp, &atimeval, &mtimeval, 1); if (error) return (error); } @@ -616,22 +613,6 @@ good: return (0); } -/* ARGSUSED */ -int -ufs_ioctl(ap) - struct vop_ioctl_args /* { - struct vnode *a_vp; - int a_command; - caddr_t a_data; - int a_fflag; - struct ucred *a_cred; - struct proc *a_p; - } */ *ap; -{ - - return (ENOTTY); -} - /* * Mmap a file * @@ -651,25 +632,6 @@ ufs_mmap(ap) return (EINVAL); } -/* - * Seek on a file - * - * Nothing to do, so just return. - */ -/* ARGSUSED */ -int -ufs_seek(ap) - struct vop_seek_args /* { - struct vnode *a_vp; - off_t a_oldoff; - off_t a_newoff; - struct ucred *a_cred; - } */ *ap; -{ - - return (0); -} - int ufs_remove(ap) struct vop_remove_args /* { @@ -757,7 +719,7 @@ ufs_link(ap) ip->i_nlink++; ip->i_flag |= IN_CHANGE; gettime(&tv); - error = VOP_UPDATE(vp, &tv, &tv, 1); + error = UFS_UPDATE(vp, &tv, &tv, 1); if (!error) { #ifdef EXT2FS if (IS_EXT2_VNODE(tdvp)) { @@ -1016,7 +978,7 @@ abortit: ip->i_nlink++; ip->i_flag |= IN_CHANGE; gettime(&tv); - if (error = VOP_UPDATE(fvp, &tv, &tv, 1)) { + if (error = UFS_UPDATE(fvp, &tv, &tv, 1)) { VOP_UNLOCK(fvp, 0, p); goto bad; } @@ -1085,7 +1047,7 @@ abortit: } dp->i_nlink++; dp->i_flag |= IN_CHANGE; - error = VOP_UPDATE(tdvp, &tv, &tv, 1); + error = UFS_UPDATE(tdvp, &tv, &tv, 1); if (error) goto bad; } @@ -1102,7 +1064,7 @@ abortit: if (doingdirectory && newparent) { dp->i_nlink--; dp->i_flag |= IN_CHANGE; - (void)VOP_UPDATE(tdvp, &tv, &tv, 1); + (void)UFS_UPDATE(tdvp, &tv, &tv, 1); } goto bad; } @@ -1390,7 +1352,7 @@ ufs_mkdir(ap) if (cnp->cn_flags & ISWHITEOUT) ip->i_flags |= UF_OPAQUE; gettime(&tv); - error = VOP_UPDATE(tvp, &tv, &tv, 1); + error = UFS_UPDATE(tvp, &tv, &tv, 1); /* * Bump link count in parent directory @@ -1400,7 +1362,7 @@ ufs_mkdir(ap) */ dp->i_nlink++; dp->i_flag |= IN_CHANGE; - error = VOP_UPDATE(dvp, &tv, &tv, 1); + error = UFS_UPDATE(dvp, &tv, &tv, 1); if (error) goto bad; @@ -1990,43 +1952,6 @@ ufsfifo_close(ap) } /* - * Return POSIX pathconf information applicable to ufs filesystems. - */ -int -ufs_pathconf(ap) - struct vop_pathconf_args /* { - struct vnode *a_vp; - int a_name; - int *a_retval; - } */ *ap; -{ - - switch (ap->a_name) { - case _PC_LINK_MAX: - *ap->a_retval = LINK_MAX; - return (0); - case _PC_NAME_MAX: - *ap->a_retval = NAME_MAX; - return (0); - case _PC_PATH_MAX: - *ap->a_retval = PATH_MAX; - return (0); - case _PC_PIPE_BUF: - *ap->a_retval = PIPE_BUF; - return (0); - case _PC_CHOWN_RESTRICTED: - *ap->a_retval = 1; - return (0); - case _PC_NO_TRUNC: - *ap->a_retval = 1; - return (0); - default: - return (EINVAL); - } - /* NOTREACHED */ -} - -/* * Advisory record locking support */ int @@ -2159,7 +2084,7 @@ ufs_makeinode(mode, dvp, vpp, cnp) * Make sure inode goes to disk before directory entry. */ gettime(&tv); - error = VOP_UPDATE(tvp, &tv, &tv, 1); + error = UFS_UPDATE(tvp, &tv, &tv, 1); if (error) goto bad; #ifdef EXT2FS @@ -2211,7 +2136,6 @@ static struct vnodeopv_entry_desc ufs_vnodeop_entries[] = { { &vop_getpages_desc, (vop_t *) ufs_missingop }, { &vop_read_desc, (vop_t *) ufs_missingop }, { &vop_reallocblks_desc, (vop_t *) ufs_missingop }, - { &vop_update_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 }, @@ -2222,7 +2146,6 @@ static struct vnodeopv_entry_desc ufs_vnodeop_entries[] = { { &vop_create_desc, (vop_t *) ufs_create }, { &vop_getattr_desc, (vop_t *) ufs_getattr }, { &vop_inactive_desc, (vop_t *) ufs_inactive }, - { &vop_ioctl_desc, (vop_t *) ufs_ioctl }, { &vop_islocked_desc, (vop_t *) ufs_islocked }, { &vop_link_desc, (vop_t *) ufs_link }, { &vop_lock_desc, (vop_t *) ufs_lock }, @@ -2231,7 +2154,7 @@ static struct vnodeopv_entry_desc ufs_vnodeop_entries[] = { { &vop_mknod_desc, (vop_t *) ufs_mknod }, { &vop_mmap_desc, (vop_t *) ufs_mmap }, { &vop_open_desc, (vop_t *) ufs_open }, - { &vop_pathconf_desc, (vop_t *) ufs_pathconf }, + { &vop_pathconf_desc, (vop_t *) vop_stdpathconf }, { &vop_print_desc, (vop_t *) ufs_print }, { &vop_readdir_desc, (vop_t *) ufs_readdir }, { &vop_readlink_desc, (vop_t *) ufs_readlink }, @@ -2239,7 +2162,6 @@ static struct vnodeopv_entry_desc ufs_vnodeop_entries[] = { { &vop_remove_desc, (vop_t *) ufs_remove }, { &vop_rename_desc, (vop_t *) ufs_rename }, { &vop_rmdir_desc, (vop_t *) ufs_rmdir }, - { &vop_seek_desc, (vop_t *) ufs_seek }, { &vop_setattr_desc, (vop_t *) ufs_setattr }, { &vop_strategy_desc, (vop_t *) ufs_strategy }, { &vop_symlink_desc, (vop_t *) ufs_symlink }, @@ -2254,7 +2176,6 @@ 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_access_desc, (vop_t *) ufs_access }, { &vop_close_desc, (vop_t *) ufsspec_close }, { &vop_getattr_desc, (vop_t *) ufs_getattr }, @@ -2276,7 +2197,6 @@ 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_access_desc, (vop_t *) ufs_access }, { &vop_close_desc, (vop_t *) ufsfifo_close }, { &vop_getattr_desc, (vop_t *) ufs_getattr }, diff --git a/sys/ufs/ufs/ufsmount.h b/sys/ufs/ufs/ufsmount.h index 50bfe57..ee79631 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.10 1997/10/12 20:26:28 phk Exp $ + * $Id: ufsmount.h,v 1.11 1997/10/16 10:50:27 phk Exp $ */ #ifndef _UFS_UFS_UFSMOUNT_H_ @@ -99,12 +99,14 @@ struct ufsmount { 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_update) __P((struct vnode *, struct timeval *, struct timeval *, int)); 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_UPDATE(aa, bb, cc, dd) VFSTOUFS((aa)->v_mount)->um_update(aa, bb, cc, dd) #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) |