summaryrefslogtreecommitdiff
path: root/sys
diff options
context:
space:
mode:
Diffstat (limited to 'sys')
-rw-r--r--sys/kern/vnode_if.src8
-rw-r--r--sys/nfs/nfs_vnops.c8
-rw-r--r--sys/ufs/ffs/ffs_alloc.c12
-rw-r--r--sys/ufs/ffs/ffs_inode.c29
-rw-r--r--sys/ufs/ffs/ffs_vnops.c10
-rw-r--r--sys/ufs/lfs/lfs_inode.c27
-rw-r--r--sys/ufs/lfs/lfs_vnops.c10
-rw-r--r--sys/ufs/ufs/ufs_inode.c10
-rw-r--r--sys/ufs/ufs/ufs_readwrite.c12
-rw-r--r--sys/ufs/ufs/ufs_vnops.c41
10 files changed, 88 insertions, 79 deletions
diff --git a/sys/kern/vnode_if.src b/sys/kern/vnode_if.src
index 4866330f88b..0a8c45ace58 100644
--- a/sys/kern/vnode_if.src
+++ b/sys/kern/vnode_if.src
@@ -1,5 +1,5 @@
-# $OpenBSD: vnode_if.src,v 1.3 1996/04/19 16:09:14 niklas Exp $
-# $NetBSD: vnode_if.src,v 1.9 1996/02/09 14:45:38 mycroft Exp $
+# $OpenBSD: vnode_if.src,v 1.4 1996/05/22 11:47:12 deraadt Exp $
+# $NetBSD: vnode_if.src,v 1.10 1996/05/11 18:26:27 mycroft Exp $
#
# Copyright (c) 1992, 1993
# The Regents of the University of California. All rights reserved.
@@ -290,8 +290,8 @@ vop_truncate {
vop_update {
IN struct vnode *vp;
- IN struct timeval *access;
- IN struct timeval *modify;
+ IN struct timespec *access;
+ IN struct timespec *modify;
IN int waitfor;
};
diff --git a/sys/nfs/nfs_vnops.c b/sys/nfs/nfs_vnops.c
index c6e640bed5c..0786c40fac6 100644
--- a/sys/nfs/nfs_vnops.c
+++ b/sys/nfs/nfs_vnops.c
@@ -1,5 +1,5 @@
-/* $OpenBSD: nfs_vnops.c,v 1.7 1996/04/21 22:30:36 deraadt Exp $ */
-/* $NetBSD: nfs_vnops.c,v 1.61 1996/04/03 23:25:42 thorpej Exp $ */
+/* $OpenBSD: nfs_vnops.c,v 1.8 1996/05/22 11:47:16 deraadt Exp $ */
+/* $NetBSD: nfs_vnops.c,v 1.62 1996/05/11 18:26:49 mycroft Exp $ */
/*
* Copyright (c) 1989, 1993
@@ -3038,8 +3038,8 @@ nfs_update(v)
#if 0
struct vop_update_args /* {
struct vnode *a_vp;
- struct timeval *a_ta;
- struct timeval *a_tm;
+ struct timespec *a_ta;
+ struct timespec *a_tm;
int a_waitfor;
} */ *ap = v;
#endif
diff --git a/sys/ufs/ffs/ffs_alloc.c b/sys/ufs/ffs/ffs_alloc.c
index a4bea4eb5d1..666560caf32 100644
--- a/sys/ufs/ffs/ffs_alloc.c
+++ b/sys/ufs/ffs/ffs_alloc.c
@@ -1,5 +1,5 @@
-/* $OpenBSD: ffs_alloc.c,v 1.3 1996/04/21 22:32:28 deraadt Exp $ */
-/* $NetBSD: ffs_alloc.c,v 1.10 1996/03/17 02:16:18 christos Exp $ */
+/* $OpenBSD: ffs_alloc.c,v 1.4 1996/05/22 11:47:17 deraadt Exp $ */
+/* $NetBSD: ffs_alloc.c,v 1.11 1996/05/11 18:27:09 mycroft Exp $ */
/*
* Copyright (c) 1982, 1986, 1989, 1993
@@ -339,6 +339,7 @@ ffs_reallocblks(v)
daddr_t start_lbn, end_lbn, soff, newblk, blkno;
struct indir start_ap[NIADDR + 1], end_ap[NIADDR + 1], *idp;
int i, len, start_lvl, end_lvl, pref, ssize;
+ struct timespec ts;
vp = ap->a_vp;
ip = VTOI(vp);
@@ -452,9 +453,10 @@ ffs_reallocblks(v)
bwrite(sbp);
} else {
ip->i_flag |= IN_CHANGE | IN_UPDATE;
- if (!doasyncfree)
- VOP_UPDATE(vp, (struct timeval *)&time,
- (struct timeval *)&time, MNT_WAIT);
+ if (!doasyncfree) {
+ TIMEVAL_TO_TIMESPEC(&time, &ts);
+ VOP_UPDATE(vp, &ts, &ts, 1);
+ }
}
if (ssize < len)
if (doasyncfree)
diff --git a/sys/ufs/ffs/ffs_inode.c b/sys/ufs/ffs/ffs_inode.c
index 70f7147cf54..855966780a4 100644
--- a/sys/ufs/ffs/ffs_inode.c
+++ b/sys/ufs/ffs/ffs_inode.c
@@ -1,5 +1,5 @@
-/* $OpenBSD: ffs_inode.c,v 1.2 1996/02/27 07:27:37 niklas Exp $ */
-/* $NetBSD: ffs_inode.c,v 1.9 1996/02/09 22:22:23 christos Exp $ */
+/* $OpenBSD: ffs_inode.c,v 1.3 1996/05/22 11:47:18 deraadt Exp $ */
+/* $NetBSD: ffs_inode.c,v 1.10 1996/05/11 18:27:19 mycroft Exp $ */
/*
* Copyright (c) 1982, 1986, 1989, 1993
@@ -82,8 +82,8 @@ ffs_update(v)
{
struct vop_update_args /* {
struct vnode *a_vp;
- struct timeval *a_access;
- struct timeval *a_modify;
+ struct timespec *a_access;
+ struct timespec *a_modify;
int a_waitfor;
} */ *ap = v;
register struct fs *fs;
@@ -100,14 +100,19 @@ ffs_update(v)
if ((ip->i_flag &
(IN_ACCESS | IN_CHANGE | IN_MODIFIED | IN_UPDATE)) == 0)
return (0);
- if (ip->i_flag & IN_ACCESS)
+ if (ip->i_flag & IN_ACCESS) {
ip->i_atime = ap->a_access->tv_sec;
+ ip->i_atimensec = ap->a_access->tv_nsec;
+ }
if (ip->i_flag & IN_UPDATE) {
ip->i_mtime = ap->a_modify->tv_sec;
+ ip->i_mtimensec = ap->a_modify->tv_nsec;
ip->i_modrev++;
}
- if (ip->i_flag & IN_CHANGE)
+ if (ip->i_flag & IN_CHANGE) {
ip->i_ctime = time.tv_sec;
+ ip->i_ctimensec = time.tv_usec * 1000;
+ }
ip->i_flag &= ~(IN_ACCESS | IN_CHANGE | IN_MODIFIED | IN_UPDATE);
fs = ip->i_fs;
/*
@@ -163,7 +168,7 @@ ffs_truncate(v)
struct buf *bp;
int offset, size, level;
long count, nblocks, vflags, blocksreleased = 0;
- struct timeval tv;
+ struct timespec ts;
register int i;
int aflags, error, allerror;
off_t osize;
@@ -171,7 +176,7 @@ ffs_truncate(v)
if (length < 0)
return (EINVAL);
oip = VTOI(ovp);
- tv = time;
+ TIMEVAL_TO_TIMESPEC(&time, &ts);
if (ovp->v_type == VLNK &&
(oip->i_size < ovp->v_mount->mnt_maxsymlinklen ||
(ovp->v_mount->mnt_maxsymlinklen == 0 &&
@@ -183,11 +188,11 @@ ffs_truncate(v)
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 (VOP_UPDATE(ovp, &ts, &ts, 1));
}
if (oip->i_size == length) {
oip->i_flag |= IN_CHANGE | IN_UPDATE;
- return (VOP_UPDATE(ovp, &tv, &tv, 0));
+ return (VOP_UPDATE(ovp, &ts, &ts, 0));
}
#ifdef QUOTA
if ((error = getinoquota(oip)) != 0)
@@ -220,7 +225,7 @@ ffs_truncate(v)
else
bawrite(bp);
oip->i_flag |= IN_CHANGE | IN_UPDATE;
- return (VOP_UPDATE(ovp, &tv, &tv, 1));
+ return (VOP_UPDATE(ovp, &ts, &ts, 1));
}
/*
* Shorten the size of the file. If the file is not being
@@ -276,7 +281,7 @@ ffs_truncate(v)
for (i = NDADDR - 1; i > lastblock; i--)
oip->i_db[i] = 0;
oip->i_flag |= IN_CHANGE | IN_UPDATE;
- if ((error = VOP_UPDATE(ovp, &tv, &tv, MNT_WAIT)) != 0)
+ if ((error = VOP_UPDATE(ovp, &ts, &ts, 1)) != 0)
allerror = error;
/*
* Having written the new inode to disk, save its new configuration
diff --git a/sys/ufs/ffs/ffs_vnops.c b/sys/ufs/ffs/ffs_vnops.c
index 2fb888dc4e1..e9462ff50be 100644
--- a/sys/ufs/ffs/ffs_vnops.c
+++ b/sys/ufs/ffs/ffs_vnops.c
@@ -1,5 +1,5 @@
-/* $OpenBSD: ffs_vnops.c,v 1.2 1996/02/27 07:27:41 niklas Exp $ */
-/* $NetBSD: ffs_vnops.c,v 1.6 1996/02/09 22:22:27 christos Exp $ */
+/* $OpenBSD: ffs_vnops.c,v 1.3 1996/05/22 11:47:18 deraadt Exp $ */
+/* $NetBSD: ffs_vnops.c,v 1.7 1996/05/11 18:27:24 mycroft Exp $ */
/*
* Copyright (c) 1982, 1986, 1989, 1993
@@ -250,11 +250,11 @@ ffs_fsync(v)
struct proc *a_p;
} */ *ap = v;
register struct vnode *vp = ap->a_vp;
- struct timeval tv;
+ struct timespec ts;
vflushbuf(vp, ap->a_waitfor == MNT_WAIT);
- tv = time;
- return (VOP_UPDATE(ap->a_vp, &tv, &tv, ap->a_waitfor == MNT_WAIT));
+ TIMEVAL_TO_TIMESPEC(&time, &ts);
+ return (VOP_UPDATE(ap->a_vp, &ts, &ts, ap->a_waitfor == MNT_WAIT));
}
/*
diff --git a/sys/ufs/lfs/lfs_inode.c b/sys/ufs/lfs/lfs_inode.c
index 72acdfbdcad..882e7c535c8 100644
--- a/sys/ufs/lfs/lfs_inode.c
+++ b/sys/ufs/lfs/lfs_inode.c
@@ -1,5 +1,5 @@
-/* $OpenBSD: lfs_inode.c,v 1.2 1996/02/27 07:13:25 niklas Exp $ */
-/* $NetBSD: lfs_inode.c,v 1.4 1996/02/09 22:28:52 christos Exp $ */
+/* $OpenBSD: lfs_inode.c,v 1.3 1996/05/22 11:47:19 deraadt Exp $ */
+/* $NetBSD: lfs_inode.c,v 1.5 1996/05/11 18:27:35 mycroft Exp $ */
/*
* Copyright (c) 1986, 1989, 1991, 1993
@@ -86,8 +86,8 @@ lfs_update(v)
{
struct vop_update_args /* {
struct vnode *a_vp;
- struct timeval *a_access;
- struct timeval *a_modify;
+ struct timespec *a_access;
+ struct timespec *a_modify;
int a_waitfor;
} */ *ap = v;
struct vnode *vp = ap->a_vp;
@@ -99,14 +99,19 @@ lfs_update(v)
if ((ip->i_flag &
(IN_ACCESS | IN_CHANGE | IN_MODIFIED | IN_UPDATE)) == 0)
return (0);
- if (ip->i_flag & IN_ACCESS)
+ if (ip->i_flag & IN_ACCESS) {
ip->i_atime = ap->a_access->tv_sec;
+ ip->i_atimensec = ap->a_access->tv_nsec;
+ }
if (ip->i_flag & IN_UPDATE) {
ip->i_mtime = ap->a_modify->tv_sec;
+ ip->i_mtimensec = ap->a_modify->tv_nsec;
(ip)->i_modrev++;
}
- if (ip->i_flag & IN_CHANGE)
+ if (ip->i_flag & IN_CHANGE) {
ip->i_ctime = time.tv_sec;
+ ip->i_ctimensec = time.tv_usec * 1000;
+ }
ip->i_flag &= ~(IN_ACCESS | IN_CHANGE | IN_UPDATE);
if (!(ip->i_flag & IN_MODIFIED))
@@ -162,7 +167,7 @@ lfs_truncate(v)
register struct vnode *vp = ap->a_vp;
off_t length = ap->a_length;
struct buf *bp, *sup_bp;
- struct timeval tv;
+ struct timespec ts;
struct ifile *ifp;
struct inode *ip;
struct lfs *fs;
@@ -173,7 +178,7 @@ lfs_truncate(v)
int e1, e2, depth, lastseg, num, offset, seg, size;
ip = VTOI(vp);
- tv = time;
+ TIMEVAL_TO_TIMESPEC(&time, &ts);
if (vp->v_type == VLNK && vp->v_mount->mnt_maxsymlinklen > 0) {
#ifdef DIAGNOSTIC
if (length != 0)
@@ -182,7 +187,7 @@ lfs_truncate(v)
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 (VOP_UPDATE(vp, &ts, &ts, 0));
}
vnode_pager_setsize(vp, (u_long)length);
@@ -191,7 +196,7 @@ lfs_truncate(v)
/* 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 (VOP_UPDATE(vp, &ts, &ts, 0));
}
/*
@@ -359,6 +364,6 @@ lfs_truncate(v)
fs->lfs_avail += fsbtodb(fs, a_released);
e1 = vinvalbuf(vp, (length > 0) ? V_SAVE : 0, ap->a_cred, ap->a_p,
0, 0);
- e2 = VOP_UPDATE(vp, &tv, &tv, 0);
+ e2 = VOP_UPDATE(vp, &ts, &ts, 0);
return (e1 ? e1 : e2 ? e2 : 0);
}
diff --git a/sys/ufs/lfs/lfs_vnops.c b/sys/ufs/lfs/lfs_vnops.c
index 24ed50153f7..f0b80c6edc7 100644
--- a/sys/ufs/lfs/lfs_vnops.c
+++ b/sys/ufs/lfs/lfs_vnops.c
@@ -1,5 +1,5 @@
-/* $OpenBSD: lfs_vnops.c,v 1.2 1996/02/27 07:13:31 niklas Exp $ */
-/* $NetBSD: lfs_vnops.c,v 1.10 1996/02/09 22:28:59 christos Exp $ */
+/* $OpenBSD: lfs_vnops.c,v 1.3 1996/05/22 11:47:20 deraadt Exp $ */
+/* $NetBSD: lfs_vnops.c,v 1.11 1996/05/11 18:27:41 mycroft Exp $ */
/*
* Copyright (c) 1986, 1989, 1991, 1993
@@ -234,10 +234,10 @@ lfs_fsync(v)
int a_waitfor;
struct proc *a_p;
} */ *ap = v;
- struct timeval tv;
+ struct timespec ts;
- tv = time;
- return (VOP_UPDATE(ap->a_vp, &tv, &tv,
+ TIMEVAL_TO_TIMESPEC(&time, &ts);
+ return (VOP_UPDATE(ap->a_vp, &ts, &ts,
ap->a_waitfor == MNT_WAIT ? LFS_SYNC : 0));
}
diff --git a/sys/ufs/ufs/ufs_inode.c b/sys/ufs/ufs/ufs_inode.c
index 063c2d97010..fcc0b25f235 100644
--- a/sys/ufs/ufs/ufs_inode.c
+++ b/sys/ufs/ufs/ufs_inode.c
@@ -1,5 +1,5 @@
-/* $OpenBSD: ufs_inode.c,v 1.2 1996/02/27 07:21:27 niklas Exp $ */
-/* $NetBSD: ufs_inode.c,v 1.6 1996/02/09 22:36:05 christos Exp $ */
+/* $OpenBSD: ufs_inode.c,v 1.3 1996/05/22 11:47:21 deraadt Exp $ */
+/* $NetBSD: ufs_inode.c,v 1.7 1996/05/11 18:27:52 mycroft Exp $ */
/*
* Copyright (c) 1991, 1993
@@ -84,7 +84,7 @@ ufs_inactive(v)
} */ *ap = v;
register struct vnode *vp = ap->a_vp;
register struct inode *ip = VTOI(vp);
- struct timeval tv;
+ struct timespec ts;
int mode, error;
extern int prtactive;
@@ -121,8 +121,8 @@ ufs_inactive(v)
VOP_VFREE(vp, ip->i_number, mode);
}
if (ip->i_flag & (IN_ACCESS | IN_CHANGE | IN_MODIFIED | IN_UPDATE)) {
- tv = time;
- VOP_UPDATE(vp, &tv, &tv, 0);
+ TIMEVAL_TO_TIMESPEC(&time, &ts);
+ VOP_UPDATE(vp, &ts, &ts, 0);
}
VOP_UNLOCK(vp);
/*
diff --git a/sys/ufs/ufs/ufs_readwrite.c b/sys/ufs/ufs/ufs_readwrite.c
index f9ff9a1eca7..04795457609 100644
--- a/sys/ufs/ufs/ufs_readwrite.c
+++ b/sys/ufs/ufs/ufs_readwrite.c
@@ -1,5 +1,5 @@
-/* $OpenBSD: ufs_readwrite.c,v 1.2 1996/02/27 07:21:31 niklas Exp $ */
-/* $NetBSD: ufs_readwrite.c,v 1.8 1996/02/09 22:36:11 christos Exp $ */
+/* $OpenBSD: ufs_readwrite.c,v 1.3 1996/05/22 11:47:21 deraadt Exp $ */
+/* $NetBSD: ufs_readwrite.c,v 1.9 1996/05/11 18:27:57 mycroft Exp $ */
/*-
* Copyright (c) 1993
@@ -182,6 +182,7 @@ WRITE(v)
daddr_t lbn;
off_t osize;
int blkoffset, error, flags, ioflag, resid, size, xfersize;
+ struct timespec ts;
ioflag = ap->a_ioflag;
uio = ap->a_uio;
@@ -293,8 +294,9 @@ WRITE(v)
uio->uio_offset -= resid - uio->uio_resid;
uio->uio_resid = resid;
}
- } else if (resid > uio->uio_resid && (ioflag & IO_SYNC))
- error = VOP_UPDATE(vp, (struct timeval *)&time,
- (struct timeval *)&time, 1);
+ } else if (resid > uio->uio_resid && (ioflag & IO_SYNC)) {
+ TIMEVAL_TO_TIMESPEC(&time, &ts);
+ error = VOP_UPDATE(vp, &ts, &ts, 1);
+ }
return (error);
}
diff --git a/sys/ufs/ufs/ufs_vnops.c b/sys/ufs/ufs/ufs_vnops.c
index 69236048330..f78258249fa 100644
--- a/sys/ufs/ufs/ufs_vnops.c
+++ b/sys/ufs/ufs/ufs_vnops.c
@@ -1,5 +1,5 @@
-/* $OpenBSD: ufs_vnops.c,v 1.3 1996/02/27 22:56:14 niklas Exp $ */
-/* $NetBSD: ufs_vnops.c,v 1.17 1996/02/11 02:06:13 christos Exp $ */
+/* $OpenBSD: ufs_vnops.c,v 1.4 1996/05/22 11:47:22 deraadt Exp $ */
+/* $NetBSD: ufs_vnops.c,v 1.18 1996/05/11 18:28:04 mycroft Exp $ */
/*
* Copyright (c) 1982, 1986, 1989, 1993
@@ -314,7 +314,6 @@ ufs_setattr(v)
register struct inode *ip = VTOI(vp);
register struct ucred *cred = ap->a_cred;
register struct proc *p = ap->a_p;
- struct timeval atimeval, mtimeval;
int error;
/*
@@ -373,11 +372,7 @@ ufs_setattr(v)
ip->i_flag |= IN_ACCESS;
if (vap->va_mtime.tv_sec != VNOVAL)
ip->i_flag |= IN_CHANGE | IN_UPDATE;
- atimeval.tv_sec = vap->va_atime.tv_sec;
- 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 = VOP_UPDATE(vp, &vap->va_atime, &vap->va_mtime, 1);
if (error)
return (error);
}
@@ -661,7 +656,7 @@ ufs_link(v)
register struct vnode *vp = ap->a_vp;
register struct componentname *cnp = ap->a_cnp;
register struct inode *ip;
- struct timeval tv;
+ struct timespec ts;
int error;
#ifdef DIAGNOSTIC
@@ -695,8 +690,8 @@ ufs_link(v)
}
ip->i_nlink++;
ip->i_flag |= IN_CHANGE;
- tv = time;
- error = VOP_UPDATE(vp, &tv, &tv, 1);
+ TIMEVAL_TO_TIMESPEC(&time, &ts);
+ error = VOP_UPDATE(vp, &ts, &ts, 1);
if (!error)
error = ufs_direnter(ip, dvp, cnp);
if (error) {
@@ -815,7 +810,7 @@ ufs_rename(v)
register struct componentname *fcnp = ap->a_fcnp;
register struct inode *ip, *xp, *dp;
struct dirtemplate dirbuf;
- struct timeval tv;
+ struct timespec ts;
int doingdirectory = 0, oldparent = 0, newparent = 0;
int error = 0;
u_char namlen;
@@ -918,8 +913,8 @@ abortit:
*/
ip->i_nlink++;
ip->i_flag |= IN_CHANGE;
- tv = time;
- if ((error = VOP_UPDATE(fvp, &tv, &tv, 1)) != 0) {
+ TIMEVAL_TO_TIMESPEC(&time, &ts);
+ if ((error = VOP_UPDATE(fvp, &ts, &ts, 1)) != 0) {
VOP_UNLOCK(fvp);
goto bad;
}
@@ -976,14 +971,14 @@ abortit:
}
dp->i_nlink++;
dp->i_flag |= IN_CHANGE;
- if ((error = VOP_UPDATE(tdvp, &tv, &tv, 1)) != 0)
+ if ((error = VOP_UPDATE(tdvp, &ts, &ts, 1)) != 0)
goto bad;
}
if ((error = ufs_direnter(ip, tdvp, tcnp)) != 0) {
if (doingdirectory && newparent) {
dp->i_nlink--;
dp->i_flag |= IN_CHANGE;
- (void)VOP_UPDATE(tdvp, &tv, &tv, 1);
+ (void)VOP_UPDATE(tdvp, &ts, &ts, 1);
}
goto bad;
}
@@ -1198,7 +1193,7 @@ ufs_mkdir(v)
register struct inode *ip, *dp;
struct vnode *tvp;
struct dirtemplate dirtemplate, *dtp;
- struct timeval tv;
+ struct timespec ts;
int error, dmode;
#ifdef DIAGNOSTIC
@@ -1238,8 +1233,8 @@ ufs_mkdir(v)
ip->i_nlink = 2;
if (cnp->cn_flags & ISWHITEOUT)
ip->i_flags |= UF_OPAQUE;
- tv = time;
- error = VOP_UPDATE(tvp, &tv, &tv, 1);
+ TIMEVAL_TO_TIMESPEC(&time, &ts);
+ error = VOP_UPDATE(tvp, &ts, &ts, 1);
/*
* Bump link count in parent directory
@@ -1249,7 +1244,7 @@ ufs_mkdir(v)
*/
dp->i_nlink++;
dp->i_flag |= IN_CHANGE;
- if ((error = VOP_UPDATE(dvp, &tv, &tv, 1)) != 0)
+ if ((error = VOP_UPDATE(dvp, &ts, &ts, 1)) != 0)
goto bad;
/* Initialize directory with "." and ".." from static template. */
@@ -2001,7 +1996,7 @@ ufs_makeinode(mode, dvp, vpp, cnp)
struct componentname *cnp;
{
register struct inode *ip, *pdir;
- struct timeval tv;
+ struct timespec ts;
struct vnode *tvp;
int error;
@@ -2046,8 +2041,8 @@ ufs_makeinode(mode, dvp, vpp, cnp)
/*
* Make sure inode goes to disk before directory entry.
*/
- tv = time;
- if ((error = VOP_UPDATE(tvp, &tv, &tv, 1)) != 0)
+ TIMEVAL_TO_TIMESPEC(&time, &ts);
+ if ((error = VOP_UPDATE(tvp, &ts, &ts, 1)) != 0)
goto bad;
if ((error = ufs_direnter(ip, dvp, cnp)) != 0)
goto bad;