summaryrefslogtreecommitdiffstats
path: root/sys/fs
diff options
context:
space:
mode:
authorbrueffer <brueffer@FreeBSD.org>2015-07-26 08:33:46 +0000
committerbrueffer <brueffer@FreeBSD.org>2015-07-26 08:33:46 +0000
commit95419ac92135d6f9997fd284b263e9bd07899dea (patch)
treeaacea3215002b4d4cd11db4ce86bd87fe5199b65 /sys/fs
parent759686c03cfdde25009ff6e7e4cdd13b6ccf337c (diff)
downloadFreeBSD-src-95419ac92135d6f9997fd284b263e9bd07899dea.zip
FreeBSD-src-95419ac92135d6f9997fd284b263e9bd07899dea.tar.gz
In tmpfs_chtimes(), remove checks on the nanosecond level when
determining whether a node changed. Other filesystems, e.g., UFS, only check on seconds, when determining whether something changed. This also corrects the birthtime case, where we checked tv_nsec twice, instead of tv_sec and tv_nsec (PR). PR: 201284 Submitted by: David Binderman Patch suggested by: kib Reviewed by: kib MFC after: 2 weeks Committed from: Essen FreeBSD Hackathon
Diffstat (limited to 'sys/fs')
-rw-r--r--sys/fs/tmpfs/tmpfs_subr.c10
1 files changed, 4 insertions, 6 deletions
diff --git a/sys/fs/tmpfs/tmpfs_subr.c b/sys/fs/tmpfs/tmpfs_subr.c
index 9a8aa8a..fa489b2 100644
--- a/sys/fs/tmpfs/tmpfs_subr.c
+++ b/sys/fs/tmpfs/tmpfs_subr.c
@@ -1709,20 +1709,18 @@ tmpfs_chtimes(struct vnode *vp, struct vattr *vap,
if (error != 0)
return (error);
- if (vap->va_atime.tv_sec != VNOVAL && vap->va_atime.tv_nsec != VNOVAL)
+ if (vap->va_atime.tv_sec != VNOVAL)
node->tn_status |= TMPFS_NODE_ACCESSED;
- if (vap->va_mtime.tv_sec != VNOVAL && vap->va_mtime.tv_nsec != VNOVAL)
+ if (vap->va_mtime.tv_sec != VNOVAL)
node->tn_status |= TMPFS_NODE_MODIFIED;
- if (vap->va_birthtime.tv_nsec != VNOVAL &&
- vap->va_birthtime.tv_nsec != VNOVAL)
+ if (vap->va_birthtime.tv_sec != VNOVAL)
node->tn_status |= TMPFS_NODE_MODIFIED;
tmpfs_itimes(vp, &vap->va_atime, &vap->va_mtime);
- if (vap->va_birthtime.tv_nsec != VNOVAL &&
- vap->va_birthtime.tv_nsec != VNOVAL)
+ if (vap->va_birthtime.tv_sec != VNOVAL)
node->tn_birthtime = vap->va_birthtime;
MPASS(VOP_ISLOCKED(vp));
OpenPOWER on IntegriCloud