From f45367d494d9e97fa8a18d8e477e1facf259688c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?P=C3=A1draig=20Brady?= Date: Thu, 10 Mar 2022 13:37:11 +0000 Subject: [PATCH] fix descriptions for AT_NO_AUTOMOUNT MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit fstatat(..., AT_NO_AUTOMOUNT) has had the following history in Linux: v2.6.37-7314-g6f45b65672c8 add AT_NO_AUTOMOUNT and fstatat honors it v3.1-rc7-68-gb6c8069d3577 ignore AT_NO_AUTOMOUNT since default operation now less eagerly mounts v4.10-11255-ga528d35e8bfc adds statx which reinstated 2.6.38 behavior for fstatat (not released) v4.11-rc7-14-gdeccf497d804 adjust fstatat so that AT_NO_AUTOMOUNT always specified (to statx) * man2/stat.2: Adjust AT_NO_AUTOMOUNT description for fstatat.2 as per the above, to indicate AT_NO_AUTOMOUNT should be avoided with fstatat() since it's ignored since 3.1 and implied since 4.11. Don't mention commit v4.13-9318-g42f461482178 as it was reverted, and moot anyway since we can't adjust AT_NO_AUTOMOUNT since 3.1. * man2/statx.2: Mention that stat(), lstat(), and fstatat() imply AT_NO_AUTOMOUNT. Signed-off-by: Pádraig Brady --- man2/stat.2 | 31 +++---------------------------- man2/statx.2 | 18 +++++++++++++++--- 2 files changed, 18 insertions(+), 31 deletions(-) diff --git a/man2/stat.2 b/man2/stat.2 index 016c1f47d..9000b2ca6 100644 --- a/man2/stat.2 +++ b/man2/stat.2 @@ -319,34 +319,9 @@ to obtain its definition. .TP .BR AT_NO_AUTOMOUNT " (since Linux 2.6.38)" Don't automount the terminal ("basename") component of -.I pathname -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, -.\" commit 42f46148217865a545e129612075f3d828a2c4e4 -also don't instantiate a nonexistent name in an -on-demand directory such as used for automounter indirect maps. -This -flag has no effect if the mount point has already been mounted over. -.IP -Both -.BR stat () -and -.BR lstat () -act as though -.B AT_NO_AUTOMOUNT -was set. -.IP -The -.B AT_NO_AUTOMOUNT -can be used in tools that scan directories -to prevent mass-automounting of a directory of automount points. -.IP -This flag is Linux-specific; define -.B _GNU_SOURCE -.\" Before glibc 2.16, defining _ATFILE_SOURCE sufficed -to obtain its definition. +.I pathname. +Since Linux 3.1 this flag is ignored. +Since Linux 4.11 this flag is implied. .TP .B AT_SYMLINK_NOFOLLOW If diff --git a/man2/statx.2 b/man2/statx.2 index 04b3e5075..d4e638756 100644 --- a/man2/statx.2 +++ b/man2/statx.2 @@ -195,11 +195,23 @@ 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). -This flag can be used in tools that scan directories -to prevent mass-automounting of a directory of automount points. +This +flag has no effect if the mount point has already been mounted over. +.IP The .B AT_NO_AUTOMOUNT -flag has no effect if the mount point has already been mounted over. +flag can be used in tools that scan directories +to prevent mass-automounting of a directory of automount points. +.IP +All of +.BR stat () , +.BR lstat () , +and +.BR fstatat () +act as though +.B AT_NO_AUTOMOUNT +was set. +.IP This flag is Linux-specific; define .B _GNU_SOURCE .\" Before glibc 2.16, defining _ATFILE_SOURCE sufficed -- 2.31.1