Add report on nanosecond file timestamps

Approved by:	hrs (mentor, implicit)
This commit is contained in:
Benjamin Kaduk 2015-04-14 23:31:28 +00:00
parent 55928a5f53
commit b7aee6207c
Notes: svn2git 2020-12-08 03:00:23 +00:00
svn path=/head/; revision=46547

View file

@ -1475,4 +1475,56 @@ WITHOUT_FORTH=y</pre>
</task>
</help>
</project>
<project cat='kern'>
<title>Nanosecond file timestamps</title>
<contact>
<person>
<name>
<given>Jilles</given>
<common>Tjoelker</common>
</name>
<email>jilles@FreeBSD.org</email>
</person>
<person>
<name>
<given>Sergey</given>
<common>Kandaurov</common>
</name>
<email>pluknet@FreeBSD.org</email>
</person>
</contact>
<body>
<p>Two new system calls, futimens() and utimensat(), were
added, making it possible to set file timestamps with nanosecond
accuracy. Various utilities like cp, mv and touch were changed
to use the new calls to preserve and set timestamps with
full precision.</p>
<p>The stat() and related system calls have returned file
timestamps with nanosecond accuracy for a long time, but there
was no way to set a timestamp more accurately than
microseconds.</p>
<p>With these changes, it will be possible to use more
accurate timestamps (sysctl vfs.timestamp_precision=3) without
anomalies such as a copy of a file (from cp -p) appearing older
than the original. This is particularly useful for NFS servers,
which use file timestamps for cache invalidation.</p>
</body>
<help>
<task>
<p>Where possible, fix code that still sets inaccurate
timestamps on files, typically by calling futimes(),
futimesat(), lutimes(), utime() or utimes() with a non-null
times pointer. There may be a reason for this such as a limited
network protocol or file format, but there is some code left
that can be fixed.</p>
</task>
</help>
</project>
</report>