Add report on nanosecond file timestamps
Approved by: hrs (mentor, implicit)
This commit is contained in:
parent
55928a5f53
commit
b7aee6207c
Notes:
svn2git
2020-12-08 03:00:23 +00:00
svn path=/head/; revision=46547
1 changed files with 52 additions and 0 deletions
|
@ -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>
|
||||
|
|
Loading…
Reference in a new issue