[lkml]   [2017]   [Aug]   [25]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
Messages in this thread
Patch in this message
Subject[PATCH manpages] stat.2: correct AT_NO_AUTOMOUNT text and general revisions.

Expand on the relationship between fstatat() and the other
three functions, and improve the description of AT_NO_AUTOMOUNT.
Specifically, both stat() and lstat() act the same way
with respect to automounts, and that behavior matches
fstatat with the AT_NO_AUTOMOUNT flag.

The text in the NOTES is removed and places with the text for
AT_NO_AUTOMOUNT to improve cohesion.

New text for a difference to be introduced in 4.14.

Cc: Ian Kent <>
Signed-off-by: NeilBrown <>

Thanks Ian and Michael. I considered your input and read
through the whole again, and came up with this which is
quite different to what I suggested before.

If this patch is applied, the result probably shouldn't be released
until the relevant patch actually lands in Linus's tree.


man2/stat.2 | 37 ++++++++++++++++++++++++-------------
1 file changed, 24 insertions(+), 13 deletions(-)

diff --git a/man2/stat.2 b/man2/stat.2
index d8a9e76b3d9f..c6dddfe0d3a7 100644
--- a/man2/stat.2
+++ b/man2/stat.2
@@ -260,9 +260,12 @@ For further information on the above fields, see
.SS fstatat()
.BR fstatat ()
-system call operates in exactly the same way as
+system call is a more general interface for accessing file information
+which can still provide exactly the behavior of each of
.BR stat (),
-except for the differences described here.
+.BR lstat (),
+.BR fstat ().
If the pathname given in
.I pathname
@@ -272,6 +275,8 @@ referred to by the file descriptor
(rather than relative to the current working directory of
the calling process, as is done by
.BR stat ()
+.BR lstat ()
for a relative pathname).
@@ -284,7 +289,9 @@ then
.I pathname
is interpreted relative to the current working
directory of the calling process (like
-.BR stat ()).
+.BR stat ()
+.BR lstat ()).
.I pathname
@@ -307,7 +314,11 @@ is an empty string, operate on the file referred to by
In this case,
.I dirfd
-can refer to any type of file, not just a directory.
+can refer to any type of file, not just a directory, and
+the behavior of
+.BR fstatat ()
+is similar to that of
+.BR fstat ().
.I dirfd
@@ -324,6 +335,8 @@ Don't automount the terminal ("basename") component of
if it is a directory that is an automount point.
This allows the caller to gather attributes of an automount point
(rather than the location it would mount).
+Since Linux 4.14, also don't instantiate a non-existent name in an
+on-demand directory such as used for automounter indirect maps.
This flag can be used in tools that scan directories
to prevent mass-automounting of a directory of automount points.
@@ -333,6 +346,13 @@ This flag is Linux-specific; define
.\" Before glibc 2.16, defining _ATFILE_SOURCE sufficed
to obtain its definition.
+.BR stat ()
+.BR lstat ()
+act as though
+was set.
@@ -474,15 +494,6 @@ fields may be less portable.
The interpretation differs between systems,
and possibly on a single system when NFS mounts are involved.)
-On Linux,
-.BR lstat ()
-will generally not trigger automounter action, whereas
-.BR stat ()
-will (but see the description of the
-.BR fstatat ()
-fag, above).
.SS Timestamp fields
Older kernels and older standards did not support nanosecond timestamp
[unhandled content-type:application/pgp-signature]
 \ /
  Last update: 2017-08-25 07:33    [W:0.296 / U:0.528 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site