diff options
Diffstat (limited to 'sys/ufs/lfs')
-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 |
4 files changed, 23 insertions, 24 deletions
diff --git a/sys/ufs/lfs/lfs_extern.h b/sys/ufs/lfs/lfs_extern.h index 030feddbaf7d..d930f4db979e 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 6b0315132dc6..39edcae76253 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 aa54c28b0246..c543639ab86d 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 a440b2bd9c79..fd383a7aca6a 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"); |