summaryrefslogtreecommitdiffstats
path: root/sys/ufs
diff options
context:
space:
mode:
authorkib <kib@FreeBSD.org>2015-12-21 11:44:54 +0000
committerkib <kib@FreeBSD.org>2015-12-21 11:44:54 +0000
commit3a7585bfb2a5c76b64e497d52cfaa4ad6466b71a (patch)
tree3cd843d3bdf8fa4dab83a8e99d9b3298e4c9d84e /sys/ufs
parent3b59a2fb92880b09d638f84f5dc07a5127448a4a (diff)
downloadFreeBSD-src-3a7585bfb2a5c76b64e497d52cfaa4ad6466b71a.zip
FreeBSD-src-3a7585bfb2a5c76b64e497d52cfaa4ad6466b71a.tar.gz
MFC r291936:
Update ctime when atime or birthtime are updated. Cleanup setting of ctime/mtime/birthtime.
Diffstat (limited to 'sys/ufs')
-rw-r--r--sys/ufs/ufs/ufs_vnops.c11
1 files changed, 3 insertions, 8 deletions
diff --git a/sys/ufs/ufs/ufs_vnops.c b/sys/ufs/ufs/ufs_vnops.c
index 5a38114..392a626 100644
--- a/sys/ufs/ufs/ufs_vnops.c
+++ b/sys/ufs/ufs/ufs_vnops.c
@@ -640,19 +640,14 @@ ufs_setattr(ap)
error = vn_utimes_perm(vp, vap, cred, td);
if (error != 0)
return (error);
- if (vap->va_atime.tv_sec != VNOVAL)
- ip->i_flag |= IN_ACCESS;
- if (vap->va_mtime.tv_sec != VNOVAL)
- ip->i_flag |= IN_CHANGE | IN_UPDATE;
- if (vap->va_birthtime.tv_sec != VNOVAL &&
- ip->i_ump->um_fstype == UFS2)
- ip->i_flag |= IN_MODIFIED;
- ufs_itimes(vp);
+ ip->i_flag |= IN_CHANGE | IN_MODIFIED;
if (vap->va_atime.tv_sec != VNOVAL) {
+ ip->i_flag &= ~IN_ACCESS;
DIP_SET(ip, i_atime, vap->va_atime.tv_sec);
DIP_SET(ip, i_atimensec, vap->va_atime.tv_nsec);
}
if (vap->va_mtime.tv_sec != VNOVAL) {
+ ip->i_flag &= ~IN_UPDATE;
DIP_SET(ip, i_mtime, vap->va_mtime.tv_sec);
DIP_SET(ip, i_mtimensec, vap->va_mtime.tv_nsec);
}
OpenPOWER on IntegriCloud