diff options
author | kib <kib@FreeBSD.org> | 2015-12-21 11:44:54 +0000 |
---|---|---|
committer | kib <kib@FreeBSD.org> | 2015-12-21 11:44:54 +0000 |
commit | 3a7585bfb2a5c76b64e497d52cfaa4ad6466b71a (patch) | |
tree | 3cd843d3bdf8fa4dab83a8e99d9b3298e4c9d84e /sys/ufs | |
parent | 3b59a2fb92880b09d638f84f5dc07a5127448a4a (diff) | |
download | FreeBSD-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.c | 11 |
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); } |