bug-gnulib
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [PATCH] fix descriptions for AT_NO_AUTOMOUNT


From: Alejandro Colomar (man-pages)
Subject: Re: [PATCH] fix descriptions for AT_NO_AUTOMOUNT
Date: Mon, 14 Mar 2022 20:56:50 +0100
User-agent: Mozilla/5.0 (X11; Linux x86_64; rv:91.0) Gecko/20100101 Thunderbird/91.6.2


On 3/14/22 19:02, Pádraig Brady wrote:
> On 14/03/2022 13:24, Alejandro Colomar (man-pages) wrote:
>> On 3/10/22 14:46, Pádraig Brady wrote:
>>> Subject: [PATCH] fix descriptions for AT_NO_AUTOMOUNT
>>>
>>> Don't mention AT_NO_AUTOMOUNT for fstatat.2
>>> as it's implied since v4.11-rc7-14-gdeccf497d804
>>
>> Even though it's implied, since code may pass it,
>> and especially code written based on the old manual page,
>> it would be good to keep the paragraph in fstatat.2,
>> even if the text is replaced by something like
>> "Before Linux x.xx, this flag was ignored.
>> After Linux y.yy, this flag is implied."
>>
>> Does it make sense to you?
> 
> Yes good point.
> I went through the git history and the summary is fstatat()
> honored the flag since 2.6.38,
> ignored the flag since 3.1,
> implied the flag since 4.11,
> 
> I'll add that info to fstatat(2), and the details to the commit message.
> 
>>> Don't mention commit v4.13-9318-g42f461482178 as it was reverted
>>
>> Please also mention v4.15-rc1-50-g5d38f049cee1 as the commit in which it
>> was reverted.
>> Since it was present in some kernel releases, we might want to mention
>> it in the manual page?
> 
> Well since the flag for fstatat() doesn't change anything since 3.1
> it's probably best not to mention this old, short lived, and very
> specific info.

Okay.

> 
>>> Mention that stat(), lstat(), and fstatat()
>>> imply AT_NO_AUTOMOUNT, on the statx.2 man page
>>
>> Please sign the patch with "Signed-off-by: ..."
>> <https://www.kernel.org/doc/man-pages/patches.html>
> 
> Done in the attached.

Please send the patch inline (or both inline and attached),
if you don't mind.
However, if it's a big hassle for you,
I can apply it from an attachment.

> 
> thanks!
> Pádraig


---

> 
> Subject: [PATCH] fix descriptions for AT_NO_AUTOMOUNT
> 
> 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 <P@draigBrady.com>

Makes sense to me.
But see a few minor comments below.

Thanks,

Alex

> ---
>  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.

Weird break point there.
I see that it was like that in existing code, but please fix it :)

> +.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 () ,

s/() ,/(2),/

> +.BR lstat () ,

s/() ,/(2),/

> +and
> +.BR fstatat ()

s/()/(2)/

> +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
> 


-- 
Alejandro Colomar
Linux man-pages comaintainer; https://www.kernel.org/doc/man-pages/
http://www.alejandro-colomar.es/



reply via email to

[Prev in Thread] Current Thread [Next in Thread]