]> git.ipfire.org Git - thirdparty/man-pages.git/log
thirdparty/man-pages.git
4 years agomount.2: SEE ALSO: add mount_setattr(2)
Michael Kerrisk [Thu, 12 Aug 2021 21:59:47 +0000 (23:59 +0200)] 
mount.2: SEE  ALSO: add mount_setattr(2)

Signed-off-by: Michael Kerrisk <mtk.manpages@gmail.com>
4 years agomount_setattr.2: Further tweaks after feedback from Christian Brauner
Michael Kerrisk [Thu, 12 Aug 2021 05:31:19 +0000 (07:31 +0200)] 
mount_setattr.2: Further tweaks after feedback from Christian Brauner

Reported-by: Christian Brauner <christian.brauner@ubuntu.com>
Signed-off-by: Michael Kerrisk <mtk.manpages@gmail.com>
4 years agomount_setattr.2: Clarify the description of "detached" mounts
Michael Kerrisk [Thu, 12 Aug 2021 03:41:56 +0000 (05:41 +0200)] 
mount_setattr.2: Clarify the description of "detached" mounts

From email:

>> Thanks. I made it "detached". Elsewhere, the page already explains
>> that a detached mount is one that:
>>
>>           must have been created by calling open_tree(2) with the
>>           OPEN_TREE_CLONE flag and it must not already have been
>>           visible in the filesystem.
>>
>> Which seems a fine explanation.
>>
>> ????
>> But, just a thought... "visible in the filesystem" seems not quite accurate.
>> What you really mean I guess is that it must not already have been
>> /visible in the filesystem hierarchy/previously mounted/something else/,
>> right?
I suppose that I should have clarified that my main problem was
that you were using the word "filesystem" in a way that I find
unconventional/ambiguous. I mean, I normally take the term
"filesystem" to be "a storage system for folding files".
Here, you are using "filesystem" to mean something else, what
I might call like "the single directory hierarchy" or "the
filesystem hierarchy" or "the list of mount points".

> A detached mount is created via the OPEN_TREE_CLONE flag. It is a
> separate new mount so "previously mounted" is not applicable.
> A detached mount is _related_ to what the MS_BIND flag gives you with
> mount(2). However, they differ conceptually and technically. A MS_BIND
> mount(2) is always visible in the fileystem when mount(2) returns, i.e.
> it is discoverable by regular path-lookup starting within the
> filesystem.
>
> However, a detached mount can be seen as a split of MS_BIND into two
> distinct steps:
> 1. fd_tree = open_tree(OPEN_TREE_CLONE): create a new mount
> 2. move_mount(fd_tree, <somewhere>):     attach the mount to the filesystem
>
> 1. and 2. together give you the equivalent of MS_BIND.
> In between 1. and 2. however the mount is detached. For the kernel
> "detached" means that an anonymous mount namespace is attached to it
> which doen't appear in proc and has a 0 sequence number (Technically,
> there's a bit of semantical argument to be made that "attached" and
> "detached" are ambiguous as they could also be taken to mean "does or
> does not have a parent mount". This ambiguity e.g. appears in
> do_move_mount(). That's why the kernel itself calls it an "anonymous
> mount". However, an OPEN_TREE_CLONE-detached mount of course doesn't
> have a parent mount so it works.).
>
> For userspace it's better to think of detached and attached in terms of
> visibility in the filesystem or in a mount namespace. That's more
> straightfoward, more relevant, and hits the target in 90% of the cases.
>
> However, the better and clearer picture is to say that a
> OPEN_TREE_CLONE-detached mount is a mount that has never been
> move_mount()ed. Which in turn can be defined as the detached mount has
> never been made visible in a mount namespace. Once that has happened the
> mount is irreversibly an attached mount.
>
> I keep thinking that maybe we should just say "anonymous mount"
> everywhere. So changing the wording to:
I'm not against the word "detached". To user space, I think it is a
little more meaningful than "anonymous". For the moment, I'll stay with
"detached", but if you insist on "anonymous", I'll probably change it.

> [...]
> EINVAL The mount that is to be ID mapped is not an anonymous mount;
> that is, the mount has already been visible in a mount namespace.
I like that text *a lot* better! Thanks very much for suggesting
wordings. It makes my life much easier.

I've made the text:

       EINVAL The mount that is to be ID mapped is not a detached
              mount; that is, the mount has not previously been
              visible in a mount namespace.

> [...]
> The mount must be an anonymous mount; that is, it must have been
> created by calling open_tree(2) with the OPEN_TREE_CLONE flag and it
> must not already have been visible in a mount namespace, i.e. it must
> not have been attached to the filesystem hierarchy with syscalls such
> as move_mount() syscall.
And that too! I've made the text:

       •  The mount must be a detached mount; that is, it must have
          been created by calling open_tree(2) with the
          OPEN_TREE_CLONE flag and it must not already have been
          visible in a mount namespace.  (To put things another way:
          the mount must not have been attached to the filesystem
          hierarchy with a system call such as move_mount(2).)

Reported-by: Christian Brauner <christian.brauner@ubuntu.com>
Signed-off-by: Michael Kerrisk <mtk.manpages@gmail.com>
4 years agomount_setattr.2: EXAMPLES: use -1 rather than -EBADF
Michael Kerrisk [Thu, 12 Aug 2021 03:16:42 +0000 (05:16 +0200)] 
mount_setattr.2: EXAMPLES: use -1 rather than -EBADF

From email with Christian Braner:

> [1]: In this code "source" is expected to be absolute. If it's not
>      absolute we should fail. This can be achieved by passing -1/-EBADF,
>      afaict.
D'oh! Okay. I hadn't considered that use case for an invalid dirfd.
(And now I've done some adjustments to openat(2),which contains a
rationale for the *at() functions.)

So, now I understand your purpose, but still the code is obscure,
since

* You use a magic value (-EBADF) rather than (say) -1.
* There's no explanation (comment about) of the fact that you want
  to prevent relative pathnames.

So, I've changed the code to use -1, not -EBADF, and I've added some
comments to explain that the intent is to prevent relative pathnames.

Signed-off-by: Michael Kerrisk <mtk.manpages@gmail.com>
4 years agomount_namespaces.7: tfix
Michael Kerrisk [Thu, 12 Aug 2021 05:15:28 +0000 (07:15 +0200)] 
mount_namespaces.7: tfix

Signed-off-by: Michael Kerrisk <mtk.manpages@gmail.com>
4 years agofanotify_mark.2, futimesat.2, mount_setattr.2, statx.2, symlink.2, mkfifo.3: Refer...
Michael Kerrisk [Thu, 12 Aug 2021 03:01:00 +0000 (05:01 +0200)] 
fanotify_mark.2, futimesat.2, mount_setattr.2, statx.2, symlink.2, mkfifo.3: Refer the reader to openat(2) for explanation of why 'dirfd' is useful

Signed-off-by: Michael Kerrisk <mtk.manpages@gmail.com>
4 years agofanotify_mark.2: wfix
Michael Kerrisk [Thu, 12 Aug 2021 02:54:40 +0000 (04:54 +0200)] 
fanotify_mark.2: wfix

Signed-off-by: Michael Kerrisk <mtk.manpages@gmail.com>
4 years agoopen.2: Minor tweaks to list of functions that take a dirfd argument
Michael Kerrisk [Thu, 12 Aug 2021 02:40:32 +0000 (04:40 +0200)] 
open.2: Minor tweaks to list of functions that take a dirfd argument

Signed-off-by: Michael Kerrisk <mtk.manpages@gmail.com>
4 years agoscandir.3: wfix
Michael Kerrisk [Thu, 12 Aug 2021 02:34:29 +0000 (04:34 +0200)] 
scandir.3: wfix

Signed-off-by: Michael Kerrisk <mtk.manpages@gmail.com>
4 years agomkfifo.3: wfix
Michael Kerrisk [Thu, 12 Aug 2021 02:32:31 +0000 (04:32 +0200)] 
mkfifo.3: wfix

Signed-off-by: Michael Kerrisk <mtk.manpages@gmail.com>
4 years agoaccess.2, chmod.2, chown.2, execveat.2, futimesat.2, link.2, mkdir.2, mknod.2, mount_...
Michael Kerrisk [Thu, 12 Aug 2021 02:05:59 +0000 (04:05 +0200)] 
access.2, chmod.2, chown.2, execveat.2, futimesat.2, link.2, mkdir.2, mknod.2, mount_setattr.2, open.2, open_by_handle_at.2, readlink.2, rename.2, stat.2, statx.2, symlink.2, unlink.2, utimensat.2, mkfifo.3, scandir.3: Fix EBADF error description

Make the description of the EBADF error for invalid 'dirfd' more
uniform. In particular, note that the error only occurs when the
pathname is relative, and that it occurs when the 'dirfd' is
neither valid *nor* has the value AT_FDCWD.

Signed-off-by: Michael Kerrisk <mtk.manpages@gmail.com>
4 years agofanotify_mark.2: ERRORS: add missing EBADF error for invalid 'dirfd'
Michael Kerrisk [Thu, 12 Aug 2021 02:02:19 +0000 (04:02 +0200)] 
fanotify_mark.2: ERRORS: add missing EBADF error for invalid 'dirfd'

Signed-off-by: Michael Kerrisk <mtk.manpages@gmail.com>
4 years agoopen_by_handle_at.2: ERRORS: add missing EBADF error for invalid 'dirfd'
Michael Kerrisk [Thu, 12 Aug 2021 01:30:56 +0000 (03:30 +0200)] 
open_by_handle_at.2: ERRORS: add missing EBADF error for invalid 'dirfd'

Signed-off-by: Michael Kerrisk <mtk.manpages@gmail.com>
4 years agomount_setattr.2: Rename 'path' to 'pathname'
Michael Kerrisk [Thu, 12 Aug 2021 01:27:01 +0000 (03:27 +0200)] 
mount_setattr.2: Rename 'path' to 'pathname'

For consistency with other pages

Signed-off-by: Michael Kerrisk <mtk.manpages@gmail.com>
4 years agoopen.2: Explicitly describe the EBADF error that can occur with openat()
Michael Kerrisk [Thu, 12 Aug 2021 01:11:13 +0000 (03:11 +0200)] 
open.2: Explicitly describe the EBADF error that can occur with openat()

In particular, specifying an invalid file descriptor number
in 'dirfd' can be used as a check that 'pathname' is absolute.

Signed-off-by: Michael Kerrisk <mtk.manpages@gmail.com>
4 years agoopen.2: Clarify that openat()'s dirfd must be opened with O_RDONLY or O_PATH
Michael Kerrisk [Thu, 12 Aug 2021 00:47:23 +0000 (02:47 +0200)] 
open.2: Clarify that openat()'s dirfd must be opened with O_RDONLY or O_PATH

Signed-off-by: Michael Kerrisk <mtk.manpages@gmail.com>
4 years agoopen.2: Reorder list of cases for 'dirfd' argument of openat()
Michael Kerrisk [Thu, 12 Aug 2021 00:43:03 +0000 (02:43 +0200)] 
open.2: Reorder list of cases for 'dirfd' argument of openat()

In preparation for subsequent commits

Signed-off-by: Michael Kerrisk <mtk.manpages@gmail.com>
4 years agoopen.2: Minor reworking of the description of the 'dirfd' argument of openat()
Michael Kerrisk [Thu, 12 Aug 2021 00:38:55 +0000 (02:38 +0200)] 
open.2: Minor reworking of the description of the 'dirfd' argument of openat()

Signed-off-by: Michael Kerrisk <mtk.manpages@gmail.com>
4 years agocapabilities.7: Add a reference to user_namespaces(7) for CAP_SETFCAP
Michael Kerrisk [Sun, 8 Aug 2021 09:12:47 +0000 (11:12 +0200)] 
capabilities.7: Add a reference to user_namespaces(7) for CAP_SETFCAP

Signed-off-by: Michael Kerrisk <mtk.manpages@gmail.com>
4 years agouser_namespaces.7: Improve description of the CAP_SETFCAP requirement when mapping...
Michael Kerrisk [Sun, 8 Aug 2021 08:27:26 +0000 (10:27 +0200)] 
user_namespaces.7: Improve description of the CAP_SETFCAP requirement when mapping UID 0

Kir Kolyshkin made a start, but I think much more needs to
be said...

Reviewed-by: Serge E. Hallyn <serge@hallyn.com>
Signed-off-by: Michael Kerrisk <mtk.manpages@gmail.com>
4 years agosyscalls.2: Add quotactl_fd(); remove quotactl_path()
Michael Kerrisk [Wed, 11 Aug 2021 02:40:43 +0000 (04:40 +0200)] 
syscalls.2: Add quotactl_fd(); remove quotactl_path()

quotactl_path() was never wired up in Linux 5.13.
It was replaced instead by quotactl_fd(),

Signed-off-by: Michael Kerrisk <mtk.manpages@gmail.com>
4 years agosigaction.2: Add kernel version for SA_UNSUPPORTED flag
Michael Kerrisk [Wed, 11 Aug 2021 01:31:52 +0000 (03:31 +0200)] 
sigaction.2: Add kernel version for SA_UNSUPPORTED flag

Signed-off-by: Michael Kerrisk <mtk.manpages@gmail.com>
4 years agowait.2: ERRORS: document EAGAIN for waitid() on a PID file descriptor
Michael Kerrisk [Tue, 10 Aug 2021 23:54:11 +0000 (01:54 +0200)] 
wait.2: ERRORS: document EAGAIN for waitid() on a PID file descriptor

Signed-off-by: Michael Kerrisk <mtk.manpages@gmail.com>
4 years agopidfd_open.2: Document PIDFD_NONBLOCK
Michael Kerrisk [Tue, 10 Aug 2021 23:48:02 +0000 (01:48 +0200)] 
pidfd_open.2: Document PIDFD_NONBLOCK

Signed-off-by: Michael Kerrisk <mtk.manpages@gmail.com>
4 years agomount_setattr.2: Minor fixes
Michael Kerrisk [Tue, 10 Aug 2021 22:28:43 +0000 (00:28 +0200)] 
mount_setattr.2: Minor fixes

Signed-off-by: Michael Kerrisk <mtk.manpages@gmail.com>
4 years agomount_setattr.2: Changes after review feedback from Christian Brauner
Michael Kerrisk [Tue, 10 Aug 2021 19:54:42 +0000 (21:54 +0200)] 
mount_setattr.2: Changes after review feedback from Christian Brauner

Reviewed-by: Christian Brauner <christian.brauner@ubuntu.com>
Signed-off-by: Michael Kerrisk <mtk.manpages@gmail.com>
4 years agoioctl_tty.2: Remove duplicated text
Michael Kerrisk [Tue, 10 Aug 2021 19:26:04 +0000 (21:26 +0200)] 
ioctl_tty.2: Remove duplicated text

Somehow I applied Pali Rohár's patch "Document ioctls: TCGETS2,
TCSETS2, TCSETSW2, TCSETSF2" twice...

Signed-off-by: Michael Kerrisk <mtk.manpages@gmail.com>
4 years agopthread_setname_np.3: EXAMPLES: remove a bug by simplify the code
Michael Kerrisk [Tue, 10 Aug 2021 09:11:40 +0000 (11:11 +0200)] 
pthread_setname_np.3: EXAMPLES: remove a bug by simplify the code

From an email conversation with Alexis:

Hello Alexis,

On 8/6/21 7:06 PM, Alexis Wilke wrote:
> Hi guys,
>
> The pthread_setname_np(3) manual page has an example where the second
> argument is used to get a size of the thread name.
>
> https://man7.org/linux/man-pages/man3/pthread_setname_np.3.html#EXAMPLES
>
> The current code:
>
>            rc = pthread_getname_np(thread, thread_name,
>                                    (argc > 2) ? atoi(argv[1]) : NAMELEN);
>
> The suggested code:
>
>            rc = pthread_getname_np(thread, thread_name,
>                                    (argc > 2) ? atoi(argv[2]) : NAMELEN);

I agree that there's a problem, but I think we could go even simpler:

     rc = pthread_getname_np(thread, thread_name, NAMELEN);

> I'm thinking that maybe the author meant to compute the length like so:
>
>            rc = pthread_getname_np(thread, thread_name,
>                                    (argc > 2) ? strlen(argv[1]) + 1 :
> NAMELEN);
>
> But I think that the atoi() points to using argv[2] as a number
> representing the length.
>
> (Of course, it should be tested against NAMELEN as a maximum, but I
> understand that examples do not always show how to verify each possible
> error).

I imagine that the author's intention was to allow the user to do
experiments where argv[2] specified a number less than NAMELEN,
in order to see the resulting ERANGE error. But, that experiment
is of limited value, and complicates the code unnecessarily, IMO,
so that's why I made the change above.

--
Michael Kerrisk
Linux man-pages maintainer; http://www.kernel.org/doc/man-pages/
Linux/UNIX System Programming Training: http://man7.org/training/

Reported-by: Alexis Wilke <alexis@m2osw.com>
Signed-off-by: Michael Kerrisk <mtk.manpages@gmail.com>
4 years agomount_setattr.2: Rework the discussion of MOUNT_ATTR__ATIME
Michael Kerrisk [Tue, 10 Aug 2021 08:41:05 +0000 (10:41 +0200)] 
mount_setattr.2: Rework the discussion of MOUNT_ATTR__ATIME

Phrases such as "In the new mount API" will date fast. Remove it.
Also:
* Make it clear that MOUNT_ATTR__ATIME expresses a bit field.
* Replace 'enum' with 'enumeration'.
* Clarify what is meant by "partially" set MOUNT_ATTR__ATIME.

Signed-off-by: Michael Kerrisk <mtk.manpages@gmail.com>
4 years agomount_setattr.2: Remove description of propagation types
Michael Kerrisk [Tue, 10 Aug 2021 07:23:08 +0000 (09:23 +0200)] 
mount_setattr.2: Remove description of propagation types

These types are already well described in mount_namespaces(7);
indeed, much of the text from that page seems to have just been
cut and pasted into this page! Simply referring the reader to
mount_namespaces(7) is sufficient.

Signed-off-by: Michael Kerrisk <mtk.manpages@gmail.com>
4 years agomount_setattr.2: Reword the description of the 'propagation field'
Michael Kerrisk [Tue, 10 Aug 2021 07:13:56 +0000 (09:13 +0200)] 
mount_setattr.2: Reword the description of the 'propagation field'

Point out that this field can have the value zero, meaning
no change. And avoid discussions of 'enum', and simply say
that otherwise the field has one of the MS_* values.

Signed-off-by: Michael Kerrisk <mtk.manpages@gmail.com>
4 years agowcstok.3: Fix type mismatch in the example
Jakub Wilk [Mon, 12 Jul 2021 16:40:26 +0000 (18:40 +0200)] 
wcstok.3: Fix type mismatch in the example

Signed-off-by: Jakub Wilk <jwilk@jwilk.net>
Signed-off-by: Michael Kerrisk <mtk.manpages@gmail.com>
4 years agoman-pages.7: wfix: s/null character/null byte/
Michael Kerrisk [Tue, 10 Aug 2021 06:31:25 +0000 (08:31 +0200)] 
man-pages.7: wfix: s/null character/null byte/

Reported-by: Stefan Kanthak <stefan.kanthak@nexgo.de>
Signed-off-by: Michael Kerrisk <mtk.manpages@gmail.com>
4 years agoseccomp.2: Clarify that bad system calls kill the thread
Eric W. Biederman [Wed, 30 Jun 2021 20:11:23 +0000 (15:11 -0500)] 
seccomp.2: Clarify that bad system calls kill the thread

Reported-by: Acked-by: Kees Cook <keescook@chromium.org>
Signed-off-by: Eric W. Biederman <ebiederm@xmission.com>
Signed-off-by: Michael Kerrisk <mtk.manpages@gmail.com>
4 years agounicode.7: tfix
Michael Kerrisk [Tue, 10 Aug 2021 01:52:08 +0000 (03:52 +0200)] 
unicode.7: tfix

Reported-by: Helge Kreutzmann <debian@helgefjell.de>
Signed-off-by: Michael Kerrisk <mtk.manpages@gmail.com>
4 years agosignal.2: srcfix
Michael Kerrisk [Tue, 10 Aug 2021 01:45:55 +0000 (03:45 +0200)] 
signal.2: srcfix

Signed-off-by: Michael Kerrisk <mtk.manpages@gmail.com>
4 years agomount_setattr.2: wfix
Michael Kerrisk [Tue, 10 Aug 2021 00:13:42 +0000 (02:13 +0200)] 
mount_setattr.2: wfix

Signed-off-by: Michael Kerrisk <mtk.manpages@gmail.com>
4 years agomount_setattr.2: Move the discussion of ID-mapped mounts to NOTES
Michael Kerrisk [Tue, 10 Aug 2021 00:08:49 +0000 (02:08 +0200)] 
mount_setattr.2: Move the discussion of ID-mapped mounts to NOTES

Having this discussion under DESCRIPTION clutters that section,
and has the effect of burying the discussion of propagation. Move
the discussion to NOTES, to make the page more readable.

Signed-off-by: Michael Kerrisk <mtk.manpages@gmail.com>
4 years agomount_setattr.2: Add a reference to mount_namespaces(7) in discussion of propagation...
Michael Kerrisk [Mon, 9 Aug 2021 23:58:21 +0000 (01:58 +0200)] 
mount_setattr.2: Add a reference to mount_namespaces(7) in discussion of propagation types

The mount_namespaces(7) page has some further relevant details.

Signed-off-by: Michael Kerrisk <mtk.manpages@gmail.com>
4 years agomount_setattr.2: Rename 'dfd' to 'dirfd'
Michael Kerrisk [Mon, 9 Aug 2021 21:29:42 +0000 (23:29 +0200)] 
mount_setattr.2: Rename 'dfd' to 'dirfd'

'dirfd' is the name consistently used in other pages.

Signed-off-by: Michael Kerrisk <mtk.manpages@gmail.com>
4 years agomount_setattr.2: Remove some unnecessary intermediate variables
Michael Kerrisk [Mon, 9 Aug 2021 21:17:41 +0000 (23:17 +0200)] 
mount_setattr.2: Remove some unnecessary intermediate variables

Signed-off-by: Michael Kerrisk <mtk.manpages@gmail.com>
4 years agomount_setattr.2: Minor clean-ups in example program
Michael Kerrisk [Mon, 9 Aug 2021 20:56:47 +0000 (22:56 +0200)] 
mount_setattr.2: Minor clean-ups in example program

- Change some instances of "-" to "\"
- Use C99 style (declare variables nearer use in code)
- Add a bit of white space
- Remove one 'const...const' added by Alex that caused
  compiler warnings
- Use "reverse Christmas tree" form for declarations in main()
- Other minor changes

Signed-off-by: Michael Kerrisk <mtk.manpages@gmail.com>
4 years agomount_setattr.2: SEE ALSO: place entries in correct order
Michael Kerrisk [Mon, 9 Aug 2021 20:44:33 +0000 (22:44 +0200)] 
mount_setattr.2: SEE ALSO: place entries in correct order

Signed-off-by: Michael Kerrisk <mtk.manpages@gmail.com>
4 years agomount_setattr.2: SEE ALSO: remove unneeded entries
Michael Kerrisk [Mon, 9 Aug 2021 20:42:43 +0000 (22:42 +0200)] 
mount_setattr.2: SEE ALSO: remove unneeded entries

We don't really need ext4(5) and xfs(5) here. They provide
no further info that is directly relevant to the reader of
mount_setattr(2).

clone3(2) isn't necessary because it is the same page as clone(2).

Signed-off-by: Michael Kerrisk <mtk.manpages@gmail.com>
4 years agomount_setattr.2: Minor wording, grammar, and formatting fixes
Michael Kerrisk [Mon, 9 Aug 2021 04:48:14 +0000 (06:48 +0200)] 
mount_setattr.2: Minor wording, grammar, and formatting fixes

Signed-off-by: Michael Kerrisk <mtk.manpages@gmail.com>
4 years agomount_setattr.2: wfix: "idmapped/idmapping" is not natural English
Michael Kerrisk [Mon, 9 Aug 2021 04:40:41 +0000 (06:40 +0200)] 
mount_setattr.2: wfix: "idmapped/idmapping" is not natural English

Let's use ID mapped, ID mapping, etc.

Signed-off-by: Michael Kerrisk <mtk.manpages@gmail.com>
4 years agomount_setattr.2: srcfix
Michael Kerrisk [Mon, 9 Aug 2021 04:34:35 +0000 (06:34 +0200)] 
mount_setattr.2: srcfix

Signed-off-by: Michael Kerrisk <mtk.manpages@gmail.com>
4 years agomount_setattr.2: Minor formatting fixes
Michael Kerrisk [Mon, 9 Aug 2021 04:33:03 +0000 (06:33 +0200)] 
mount_setattr.2: Minor formatting fixes

Signed-off-by: Michael Kerrisk <mtk.manpages@gmail.com>
4 years agomount_setattr.2: Minor tweaks to Christian's patch
Alejandro Colomar [Sun, 8 Aug 2021 08:41:31 +0000 (10:41 +0200)] 
mount_setattr.2: Minor tweaks to Christian's patch

- Fix SYNOPSIS to fit in 78 columns

  Also, we don't show when an include is included for a specific type,
  unless that header is included _only_ for the type,
  or there might be confusion (e.g., termios).
  Instead, that type should be documented in system_data_types(7),
  with a link page mount_attr-struct(3).

- Fix references to mount_setattr().  See man-pages(7):

       Any reference to the subject of the current manual page should be writ‐
       ten with the name in bold followed by a pair of  parentheses  in  Roman
       (normal)  font.   For  example, in the fcntl(2) man page, references to
       the subject of the page would be written as:  fcntl().   The  preferred
       way to write this in the source file is:

           .BR fcntl ()

- Fix line breaks according to semantic newline rules (and add some commas)
- Fix wrong usage of .IR when .RI should have been used
- Fix formatting of variable part in FOO<number>:
  - Make italic the variable part (as groff_man(7) recommends)
  - Remove <>
  - Use syntax recommended by G. Branden Robinson (groff)

- Fix unnecessary uses of .BR or .IR when .B or .I would suffice
- Fix formatting of punctuation

  In some cases, it was in italics or bold, and it should always be in roman.

- Use uppercase to begin text, even in bullet points, since those were
  multi-sentence.

- Simplify usage of .RS/.RE in combination with .IP
- s/fat/FAT/ as fs(7) does
- Slightly reword some sentences for consistency
- Use Linux-specific for consistency with other pages (in VERSIONS)
- EXAMPLES: Place the return type in a line of its own (as in other pages)
- Fix alignment of code
- Replace unnecessary use of the GNU extension ({}) by do {} while (0)

  In that case, there was no return value (moreover, it's a noreturn).

- Break complex declaration lines into a line for each variable

  The variables were being initialized, some to non-zero values,
  so for clarity, a line for each one seems more appropriate.

- Add const to pointers when possible
- s/\\/\e/
- Remove unmatched groff commands

Cc: Christian Brauner <brauner@kernel.org>
Signed-off-by: Alejandro Colomar <alx.manpages@gmail.com>
Signed-off-by: Michael Kerrisk <mtk.manpages@gmail.com>
4 years agomount_setattr.2: New manual page documenting the mount_setattr() system call
Christian Brauner [Sun, 8 Aug 2021 08:41:30 +0000 (10:41 +0200)] 
mount_setattr.2: New manual page documenting the mount_setattr() system call

Signed-off-by: Christian Brauner <christian.brauner@ubuntu.com>
Cc: Christoph Hellwig <hch@infradead.org>
Signed-off-by: Alejandro Colomar <alx.manpages@gmail.com>
Signed-off-by: Michael Kerrisk <mtk.manpages@gmail.com>
4 years agofutex.2: Rework the description of FUTEX_LOCK_PI2
Michael Kerrisk [Mon, 9 Aug 2021 00:07:26 +0000 (02:07 +0200)] 
futex.2: Rework the description of FUTEX_LOCK_PI2

Note the use of FUTEX_CLOCK_REALTIME for selecting the clock,
and eliminate repetition of details already covered in the
description of FUTEX_LOCK_PI.

Signed-off-by: Michael Kerrisk <mtk.manpages@gmail.com>
4 years agofutex.2: Minor tweaks to Kurt's patch
Alejandro Colomar [Sun, 8 Aug 2021 08:41:17 +0000 (10:41 +0200)] 
futex.2: Minor tweaks to Kurt's patch

Cc: Kurt Kanzenbach <kurt@linutronix.de>
Signed-off-by: Alejandro Colomar <alx.manpages@gmail.com>
Signed-off-by: Michael Kerrisk <mtk.manpages@gmail.com>
4 years agofutex.2: Document FUTEX_LOCK_PI2
Kurt Kanzenbach [Sun, 8 Aug 2021 08:41:16 +0000 (10:41 +0200)] 
futex.2: Document FUTEX_LOCK_PI2

FUTEX_LOCK_PI2 is a new futex operation which was recently introduced into the
Linux kernel. It works exactly like FUTEX_LOCK_PI. However, it has support for
selectable clocks for timeouts. By default CLOCK_MONOTONIC is used. If
FUTEX_CLOCK_REALTIME is specified then the timeout is measured against
CLOCK_REALTIME.

This new operation addresses an inconsistency in the futex interface:
FUTEX_LOCK_PI only works with timeouts based on CLOCK_REALTIME in contrast to
all the other PI operations.

Document the FUTEX_LOCK_PI2 command.

Signed-off-by: Kurt Kanzenbach <kurt@linutronix.de>
Reviewed-by: Thomas Gleixner <tglx@linutronix.de>
Signed-off-by: Alejandro Colomar <alx.manpages@gmail.com>
Signed-off-by: Michael Kerrisk <mtk.manpages@gmail.com>
4 years agopath_resolution.7: tfix + srcfix
Alejandro Colomar [Mon, 9 Aug 2021 09:10:52 +0000 (11:10 +0200)] 
path_resolution.7: tfix + srcfix

Signed-off-by: Alejandro Colomar <alx.manpages@gmail.com>
Signed-off-by: Michael Kerrisk <mtk.manpages@gmail.com>
4 years agosyscalls.2: Add system calls that are new in 5.13
Michael Kerrisk [Mon, 10 May 2021 01:41:55 +0000 (13:41 +1200)] 
syscalls.2: Add system calls that are new in 5.13

Signed-off-by: Michael Kerrisk <mtk.manpages@gmail.com>
4 years agosigaction.2: Minor reworking of Alejandro Colomar's patch
Michael Kerrisk [Mon, 9 Aug 2021 00:22:26 +0000 (02:22 +0200)] 
sigaction.2: Minor reworking of Alejandro Colomar's patch

Signed-off-by: Michael Kerrisk <mtk.manpages@gmail.com>
4 years agosigaction.2: Minor tweaks to the code example
Michael Kerrisk [Mon, 9 Aug 2021 00:19:43 +0000 (02:19 +0200)] 
sigaction.2: Minor tweaks to the code example

Signed-off-by: Michael Kerrisk <mtk.manpages@gmail.com>
4 years agosigaction.2: Minor clean-ups to Peter Collingbourne's patch
Michael Kerrisk [Mon, 9 Aug 2021 00:26:50 +0000 (02:26 +0200)] 
sigaction.2: Minor clean-ups to Peter Collingbourne's patch

Signed-off-by: Michael Kerrisk <mtk.manpages@gmail.com>
4 years agosigaction.2: Minor tweaks to Peter's patch
Alejandro Colomar [Sun, 8 Aug 2021 08:41:13 +0000 (10:41 +0200)] 
sigaction.2: Minor tweaks to Peter's patch

- Move example program to a new EXAMPLES section
- Invert logic in the handler to have the failure in the
  conditional path, and the success out of any conditionals.
- Use NULL, EXIT_SUCCESS, and EXIT_FAILURE instead of magic numbers
- Separate declarations from code
- Put function return type on its own line
- Put function opening brace on its line

Cc: Peter Collingbourne <pcc@google.com>
Signed-off-by: Alejandro Colomar <alx.manpages@gmail.com>
Signed-off-by: Michael Kerrisk <mtk.manpages@gmail.com>
4 years agosigaction.2: Document SA_EXPOSE_TAGBITS and the flag support detection protocol
Peter Collingbourne [Sun, 8 Aug 2021 08:41:12 +0000 (10:41 +0200)] 
sigaction.2: Document SA_EXPOSE_TAGBITS and the flag support detection protocol

Signed-off-by: Peter Collingbourne <pcc@google.com>
Signed-off-by: Alejandro Colomar <alx.manpages@gmail.com>
Signed-off-by: Michael Kerrisk <mtk.manpages@gmail.com>
4 years agopath_resolution.7: Improve description of trailin slashes
Michael Kerrisk [Sun, 8 Aug 2021 23:02:18 +0000 (01:02 +0200)] 
path_resolution.7: Improve description of trailin slashes

See https://bugzilla.kernel.org/show_bug.cgi?id=212385

some/path/dir/ is not always the same as some/path/dir/:

$ mkdir u
$ rmdir u/.
rmdir: failed to remove 'u/.': Invalid argument
$ rmdir u
$

The text in POSIX.1-2018 Section 4.13 ("Pathname Resolution")
is helpful in pointing to a better wording.

Reported-by: Askar Safin <safinaskar@mail.ru>
Signed-off-by: Michael Kerrisk <mtk.manpages@gmail.com>
4 years agoldd.1: Fix example command
Alejandro Colomar [Sun, 8 Aug 2021 08:41:32 +0000 (10:41 +0200)] 
ldd.1: Fix example command

Emanuele Torre via linux-man@:

[
I was reading the man page for ldd(1)[1]; and I read this in the first
paragraph of the DECRIPTION section:

 ldd prints the shared objects (shared libraries) required by each
 program or shared object specified on the command line.  An
 example of its use and output (using sed(1) to trim leading white
 space for readability in this page) is the following:

     $ ldd /bin/ls | sed 's/^ */    /'
         linux-vdso.so.1 (0x00007ffcc3563000)
         libselinux.so.1 => /lib64/libselinux.so.1 (0x00007f87e5459000)
         libcap.so.2 => /lib64/libcap.so.2 (0x00007f87e5254000)
         libc.so.6 => /lib64/libc.so.6 (0x00007f87e4e92000)
         libpcre.so.1 => /lib64/libpcre.so.1 (0x00007f87e4c22000)
         libdl.so.2 => /lib64/libdl.so.2 (0x00007f87e4a1e000)
         /lib64/ld-linux-x86-64.so.2 (0x00005574bf12e000)
         libattr.so.1 => /lib64/libattr.so.1 (0x00007f87e4817000)
         libpthread.so.0 => /lib64/libpthread.so.0 (0x00007f87e45fa000)

This is a little confusing though since that sed(1) command does not
seem to work. (and also potentially misleading for someone who is trying
figure out how to parse ldd(1)'s output.)

ldd(1) prepends a TAB character (0x09) to each line, not spaces:

 $ ldd /bin/ls | xxd | head -1
 00000000: 096c 696e 7578 2d76 6473 6f2e 736f 2e31  .linux-vdso.so.1

I read ldd(1)'s source code[2] (it is part of glibc) and it seems to be
a bash script that tries to use different rtld programs ( ld.so(8) )
from an RTLDLIST.

Those, on my system, are:

 * /usr/lib/ld-linux.so.2
 * /usr/lib64/ld-linux-x86-64.so.2
 * /usr/libx32/ld-linux-x32.so.2

And they all seem to also be part of glibc.

I have tried to follow the git history of glibc to see when the switch
from spaces to the TAB character occured, but, to me, it seems like
glibc.git/elf/rtld.c has always used '\t'; at since
6a76c115150318eae5d02eca76f2fc03be7bd029[3] (358th commit since glibc
started using the git repository repository - Nov 18th 1995): before
that commit there are not any results for `git grep '\\t'` in the elf
directory and I did not investigate further.

Still, at the time of that commit, glibc did not seem to have an ldd(1)
utility.

Perhaps the man page is old and its original author was using and
documenting an ldd(1) utility that was not part of glibc when he was
writing it.

Anyhow, since I think that sed(1) command will not work on any system
that uses, at least, the most recent version of glibc (because lld(1)
and the ld.so(8) programs it depends on are all part of glibc), I think
that that example should be changed to avoid confusions.

The output format of ldd(1) does not seem to be clearly defined, so I
think this would be a good option:

 $ ldd /bin/ls | sed 's/^[[:space:]]*/    /'

NB: ^\s* should also work on most GNU/Linux systems, but \s is
    non-standard or documented so I don not suggest using it in the man
    page.

Another option could be to remove "the pipe to sed(1)" part and the note
in parentheses that explains why it was used by the original author.

Cheers.
 emanuele6

[1]: https://man7.org/linux/man-pages/man1/ldd.1.html
[2]: https://sourceware.org/git/?p=glibc.git;a=blob;f=elf/ldd.bash.in;h=ba736464ac5e4a9390b1b6a39595035238250232;hb=5188a9d0265cc6f7235a8af1d31ab02e4a24853d
[3]: https://sourceware.org/git/?p=glibc.git;a=commit;h=6a76c115150318eae5d02eca76f2fc03be7bd029

///////

 $ uname -a
 Linux t420 5.10.54-1-lts #1 SMP Wed, 28 Jul 2021 15:05:20 +0000
x86_64 GNU/Linux
 $ pacman -Qo ldd
 /usr/bin/ldd is owned by glibc 2.33-5
 $ pacman -Qo /usr/share/man/man1/ldd.1.gz
 /usr/share/man/man1/ldd.1.gz is owned by man-pages 5.12-2
 $ pacman -Qo /usr/lib/ld-linux.so.2
 /usr/lib/ld-linux.so.2 is owned by lib32-glibc 2.33-5
 $ pacman -Qo /usr/lib64/ld-linux-x86-64.so.2
 /usr/lib/ld-linux-x86-64.so.2 is owned by glibc 2.33-5
 $ pacman -F /usr/libx32/ld-linux-x32.so.2 || echo not available on arch linux.
 not available on arch linux.
]

Reported-by: EmanueleTorre <torreemanuele6@gmail.com>
Signed-off-by: Alejandro Colomar <alx.manpages@gmail.com>
Signed-off-by: Michael Kerrisk <mtk.manpages@gmail.com>
4 years agolocaledef.1, access.2, ioctl_console.2, ioctl_fslabel.2, openat2.2, write.2, dlsym...
Michael Kerrisk [Sun, 8 Aug 2021 22:26:25 +0000 (00:26 +0200)] 
localedef.1, access.2, ioctl_console.2, ioctl_fslabel.2, openat2.2, write.2, dlsym.3, getopt.3, nl_langinfo.3, termios.3, xcrypt.3, hosts.equiv.5, nsswitch.conf.5, cgroups.7, man-pages.7, netlink.7, system_data_types.7: srcfix: semantic newlines

Signed-off-by: Michael Kerrisk <mtk.manpages@gmail.com>
4 years agonl_langinfo.3: wfix
Michael Kerrisk [Sun, 8 Aug 2021 22:22:31 +0000 (00:22 +0200)] 
nl_langinfo.3: wfix

Signed-off-by: Michael Kerrisk <mtk.manpages@gmail.com>
4 years agogetopt.3: Minor tweak to James's patch
Alejandro Colomar [Sun, 8 Aug 2021 08:41:21 +0000 (10:41 +0200)] 
getopt.3: Minor tweak to James's patch

Cc: James O. D. Hunt <jamesodhunt@gmail.com>
Signed-off-by: Alejandro Colomar <alx.manpages@gmail.com>
Signed-off-by: Michael Kerrisk <mtk.manpages@gmail.com>
4 years agogetopt.3: Further clarification of optstring
James O. D. Hunt [Sun, 8 Aug 2021 08:41:20 +0000 (10:41 +0200)] 
getopt.3: Further clarification of optstring

Explain that `optstring` cannot contain a semi-colon (`;`)
character.
[mtk: verified with a small test program; see also posix/getopt.c
in the glibc sources:

    if (temp == NULL || c == ':' || c == ';')
      {
        if (print_errors)
          fprintf (stderr, _("%s: invalid option -- '%c'\n"), argv[0], c);
        d->optopt = c;
        return '?';
      }
]

Also explain that `optstring` can include `+` as an option
character, possibly in addition to that character being used as
the first character in `optstring` to denote `POSIXLY_CORRECT`
behaviour.
[mtk: verified with a small test program.]

Test program below. Example runs:

$ ./a.out -+
opt = 43 (+); optind = 2
Got plus
$ ./a.out -';'
./a.out: invalid option -- ';'
opt = 63 (?); optind = 2; optopt = 59 (;)
Unrecognized option (-;)
Usage: ./a.out [-p arg] [-x]

Signed-off-by: James O. D. Hunt <jamesodhunt@gmail.com>
Signed-off-by: Alejandro Colomar <alx.manpages@gmail.com>
Signed-off-by: Michael Kerrisk <mtk.manpages@gmail.com>
8x---8x---8x---8x---8x---8x---8x---8x---8x---8x---8x---
#include <ctype.h>
#include <sys/types.h>
#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>

#define printable(ch) (isprint((unsigned char) ch) ? ch : '#')

static void             /* Print "usage" message and exit */
usageError(char *progName, char *msg, int opt)
{
    if (msg != NULL && opt != 0)
        fprintf(stderr, "%s (-%c)\n", msg, printable(opt));
    fprintf(stderr, "Usage: %s [-p arg] [-x]\n", progName);
    exit(EXIT_FAILURE);
}

int
main(int argc, char *argv[])
{
    int opt, xfnd;
    char *pstr;

    xfnd = 0;
    pstr = NULL;

    while ((opt = getopt(argc, argv, "p:x+;")) != -1) {
        printf("opt =%3d (%c); optind = %d", opt, printable(opt), optind);
        if (opt == '?' || opt == ':')
            printf("; optopt =%3d (%c)", optopt, printable(optopt));
        printf("\n");

        switch (opt) {
        case 'p': pstr = optarg;                break;
        case 'x': xfnd++;                       break;
        case ';': printf("Got semicolon\n");    break;
        case '+': printf("Got plus\n"); break;
        case ':': usageError(argv[0], "Missing argument", optopt);
        case '?': usageError(argv[0], "Unrecognized option", optopt);
        default:
                  printf("Unexpected case in switch()\n");
                  exit(EXIT_FAILURE);
        }
    }

    if (xfnd != 0)
        printf("-x was specified (count=%d)\n", xfnd);
    if (pstr != NULL)
        printf("-p was specified with the value \"%s\"\n", pstr);
    if (optind < argc)
        printf("First nonoption argument is \"%s\" at argv[%d]\n",
                argv[optind], optind);
    exit(EXIT_SUCCESS);
}

4 years agoclose_range.2: Glibc added a wrapper recently
Alejandro Colomar [Sun, 8 Aug 2021 08:41:33 +0000 (10:41 +0200)] 
close_range.2: Glibc added a wrapper recently

Fixes: c2356ba085ed4f748b81c0ceeba1811b4a549e1c
Signed-off-by: Alejandro Colomar <alx.manpages@gmail.com>
Signed-off-by: Michael Kerrisk <mtk.manpages@gmail.com>
4 years agoioctl_tty.2: Note kernel version that added TCGETS2, TCSETS2, TCSETSW2, and TCSETSF2
Michael Kerrisk [Sun, 8 Aug 2021 20:54:29 +0000 (22:54 +0200)] 
ioctl_tty.2: Note kernel version that added TCGETS2, TCSETS2, TCSETSW2, and TCSETSF2

Signed-off-by: Michael Kerrisk <mtk.manpages@gmail.com>
4 years agoioctl_tty.2: Minor wording clean-ups
Michael Kerrisk [Sun, 8 Aug 2021 20:42:22 +0000 (22:42 +0200)] 
ioctl_tty.2: Minor wording clean-ups

Signed-off-by: Michael Kerrisk <mtk.manpages@gmail.com>
4 years agoioctl_tty.2: Document ioctls: TCGETS2, TCSETS2, TCSETSW2, TCSETSF2
Pali Rohár [Sun, 8 Aug 2021 08:41:23 +0000 (10:41 +0200)] 
ioctl_tty.2: Document ioctls: TCGETS2, TCSETS2, TCSETSW2, TCSETSF2

Signed-off-by: Pali Rohár <pali@kernel.org>
Signed-off-by: Alejandro Colomar <alx.manpages@gmail.com>
Signed-off-by: Michael Kerrisk <mtk.manpages@gmail.com>
4 years agoioctl_tty.2: Document ioctls: TCGETS2, TCSETS2, TCSETSW2, TCSETSF2
Pali Rohár [Sun, 8 Aug 2021 08:41:23 +0000 (10:41 +0200)] 
ioctl_tty.2: Document ioctls: TCGETS2, TCSETS2, TCSETSW2, TCSETSF2

Signed-off-by: Pali Rohár <pali@kernel.org>
Signed-off-by: Alejandro Colomar <alx.manpages@gmail.com>
Signed-off-by: Michael Kerrisk <mtk.manpages@gmail.com>
4 years agoioctl_tty.2: Update DTR example
Pali Rohár [Sun, 8 Aug 2021 08:41:24 +0000 (10:41 +0200)] 
ioctl_tty.2: Update DTR example

Do not include unused (and incompatible) header file termios.h and
include required header files for puts() and close() functions.

Signed-off-by: Pali Rohár <pali@kernel.org>
Signed-off-by: Alejandro Colomar <alx.manpages@gmail.com>
Signed-off-by: Michael Kerrisk <mtk.manpages@gmail.com>
4 years agotermios.3: wfix
Michael Kerrisk [Sun, 8 Aug 2021 20:51:27 +0000 (22:51 +0200)] 
termios.3: wfix

Signed-off-by: Michael Kerrisk <mtk.manpages@gmail.com>
4 years agotermios.3: SPARC architecture has 4 different Bnnn constants
Pali Rohár [Sun, 8 Aug 2021 08:41:28 +0000 (10:41 +0200)] 
termios.3: SPARC architecture has 4 different Bnnn constants

SPARC is special, it does not have Bnnn constants for baud rates above
2000000. Instead it defines 4 Bnnn constants with smaller baud rates.

This difference between SPARC and non-SPARC architectures is present in
both glibc API (termios.h) and also kernel ioctl API (asm/termbits.h).

Signed-off-by: Pali Rohár <pali@kernel.org>
Signed-off-by: Alejandro Colomar <alx.manpages@gmail.com>
Signed-off-by: Michael Kerrisk <mtk.manpages@gmail.com>
4 years agotermios.3: ffix
Alejandro Colomar [Sun, 8 Aug 2021 08:41:27 +0000 (10:41 +0200)] 
termios.3: ffix

Format variable parts of words referring to a group of identifiers
in italics, following groff_man(7) recommendations.

Also srcfix surrounding uses of \f escape sequences to use macros

Signed-off-by: Alejandro Colomar <alx.manpages@gmail.com>
Signed-off-by: Michael Kerrisk <mtk.manpages@gmail.com>
4 years agotermios.3: Add information how to set baud rate to any other value
Pali Rohár [Sun, 8 Aug 2021 08:41:25 +0000 (10:41 +0200)] 
termios.3: Add information how to set baud rate to any other value

Signed-off-by: Pali Rohár <pali@kernel.org>
Signed-off-by: Alejandro Colomar <alx.manpages@gmail.com>
Signed-off-by: Michael Kerrisk <mtk.manpages@gmail.com>
4 years agotermios.3: Use bold style for Bnn and EXTn macro constants
Pali Rohár [Sun, 8 Aug 2021 08:41:22 +0000 (10:41 +0200)] 
termios.3: Use bold style for Bnn and EXTn macro constants

Signed-off-by: Pali Rohár <pali@kernel.org>
Signed-off-by: Alejandro Colomar <alx.manpages@gmail.com>
Signed-off-by: Michael Kerrisk <mtk.manpages@gmail.com>
4 years agotermios.3: Document missing baud-rate constants
Pali Rohár [Sun, 8 Aug 2021 08:41:19 +0000 (10:41 +0200)] 
termios.3: Document missing baud-rate constants

These baud-rate macro constants are defined in bits/termios.h and are
already supported.

Signed-off-by: Pali Rohár <pali@kernel.org>
Signed-off-by: Alejandro Colomar <alx.manpages@gmail.com>
Signed-off-by: Michael Kerrisk <mtk.manpages@gmail.com>
4 years agounix.7: tfix
Štěpán Němec [Sun, 8 Aug 2021 08:41:15 +0000 (10:41 +0200)] 
unix.7: tfix

Signed-off-by: Štěpán Němec <stepnem@gmail.com>
Signed-off-by: Michael Kerrisk <mtk.manpages@gmail.com>
4 years agoregex.3: wfix
наб [Sun, 8 Aug 2021 08:41:29 +0000 (10:41 +0200)] 
regex.3: wfix

"address of regcomp() initialized buffer" ->
"address of regcomp()-initialized buffer"

Signed-off-by: Ahelenia Ziemiańska <nabijaczleweli@nabijaczleweli.xyz>
Signed-off-by: Alejandro Colomar <alx.manpages@gmail.com>
Signed-off-by: Michael Kerrisk <mtk.manpages@gmail.com>
4 years agoman-pages.7: wfix
G. Branden Robinson [Sun, 8 Aug 2021 08:41:26 +0000 (10:41 +0200)] 
man-pages.7: wfix

Saw this while preparing the "switch to \~" change Alex invited.

Signed-off-by: G. Branden Robinson <g.branden.robinson@gmail.com>
Signed-off-by: Alejandro Colomar <alx.manpages@gmail.com>
Signed-off-by: Michael Kerrisk <mtk.manpages@gmail.com>
4 years agonamespaces.7: ffix
Michael Weiß [Sun, 8 Aug 2021 08:41:14 +0000 (10:41 +0200)] 
namespaces.7: ffix

Signed-off-by: Michael Weiß <michael.weiss@aisec.fraunhofer.de>
Signed-off-by: Alejandro Colomar <alx.manpages@gmail.com>
Signed-off-by: Michael Kerrisk <mtk.manpages@gmail.com>
4 years agoreadv.2, pipe.7: Make text on pipe writes more general to avoid a confusion in writev(2)
Michael Kerrisk [Sun, 8 Aug 2021 09:24:16 +0000 (11:24 +0200)] 
readv.2, pipe.7: Make text on pipe writes more general to avoid a confusion in writev(2)

After a patch proposal from наб triggered by concerns that, when
talking about PIPE_BUF, pipe(7) explicitly mentions write(2) but
not writev(2), I've concluded that the reference in writev(2) to
pipe(7) is not needed (mea culpa; I added that text), and I think
the text in pipe(7) could be written to be closer to the POSIX
spec, which doesn't talk about "write() calls", but simply about
"writes".

Reported-by: наб <nabijaczleweli@nabijaczleweli.xyz>
Signed-off-by: Michael Kerrisk <mtk.manpages@gmail.com>
4 years agocapabilities.7, user_namespaces.7: Minor tweaks (part 2) to Kir Kolyshkin's patch
Michael Kerrisk [Sun, 8 Aug 2021 03:00:36 +0000 (05:00 +0200)] 
capabilities.7, user_namespaces.7: Minor tweaks (part 2) to Kir Kolyshkin's patch

Signed-off-by: Michael Kerrisk <mtk.manpages@gmail.com>
4 years agocapabilities.7: Minor tweaks to Kir's patch
Alejandro Colomar [Wed, 28 Jul 2021 20:19:51 +0000 (22:19 +0200)] 
capabilities.7: Minor tweaks to Kir's patch

Signed-off-by: Alejandro Colomar <alx.manpages@gmail.com>
Signed-off-by: Michael Kerrisk <mtk.manpages@gmail.com>
4 years agocapabilities.7, user_namespaces.7: Describe CAP_SETFCAP
Kir Kolyshkin [Wed, 28 Jul 2021 20:19:50 +0000 (22:19 +0200)] 
capabilities.7, user_namespaces.7: Describe CAP_SETFCAP

mtk: The kernel commit message is quite enlihtening:

    commit db2e718a47984b9d71ed890eb2ea36ecf150de18
    Author: Serge E. Hallyn <serge@hallyn.com>
    Date:   Tue Apr 20 08:43:34 2021 -0500

Signed-off-by: Kir Kolyshkin <kolyshkin@gmail.com>
Signed-off-by: Alejandro Colomar <alx.manpages@gmail.com>
Signed-off-by: Michael Kerrisk <mtk.manpages@gmail.com>
4 years agoreadv.2: Minor fixes (part 2) to Will Manley's patch
Michael Kerrisk [Sun, 8 Aug 2021 02:34:37 +0000 (04:34 +0200)] 
readv.2: Minor fixes (part 2) to Will Manley's patch

Mainly: I generally don't want us to be including URLs to mailing
list discussions in a manual page. Either, the issue in the
discussion is worth writing up in the manual page (so that
the reader doesn't have to look elsewhere), or the details
are less important, in which case it is sufficient to note the
existence of the bug. I think this is an example of the latter.

Signed-off-by: Michael Kerrisk <mtk.manpages@gmail.com>
4 years agoreadv.2: Minor tweaks to Will Manley's patch
Alejandro Colomar [Wed, 28 Jul 2021 20:19:38 +0000 (22:19 +0200)] 
readv.2: Minor tweaks to Will Manley's patch

Cc: Will Manley <will@williammanley.net>
Signed-off-by: Alejandro Colomar <alx.manpages@gmail.com>
Signed-off-by: Michael Kerrisk <mtk.manpages@gmail.com>
4 years agoreadv2: Note preadv2(..., RWF_NOWAIT) bug in BUGS section
Will Manley [Wed, 28 Jul 2021 20:19:37 +0000 (22:19 +0200)] 
readv2: Note preadv2(..., RWF_NOWAIT) bug in BUGS section

To save the next person before they fall foul of it.  See
<https://lore.kernel.org/linux-fsdevel/fea8b16d-5a69-40f9-b123-e84dcd6e8f2e@www.fastmail.com/T/#u>
and <https://github.com/tokio-rs/tokio/issues/3803> for more information.

Signed-off-by: Will Manley <will@williammanley.net>
Signed-off-by: Alejandro Colomar <alx.manpages@gmail.com>
Signed-off-by: Michael Kerrisk <mtk.manpages@gmail.com>
4 years agovdso.7: Minor tweak to Alejandro Colomar's patch
Michael Kerrisk [Sun, 8 Aug 2021 02:22:49 +0000 (04:22 +0200)] 
vdso.7: Minor tweak to Alejandro Colomar's patch

The correct kernel version seems to 5.11, not 5.10:

$ git describe --contains d0e3fc69d00d
v5.11-rc1~76^2~251

Signed-off-by: Michael Kerrisk <mtk.manpages@gmail.com>
4 years agovdso.7: Add y2038 compliant gettime for ppc/32
Alejandro Colomar [Wed, 28 Jul 2021 20:19:40 +0000 (22:19 +0200)] 
vdso.7: Add y2038 compliant gettime for ppc/32

Christophe Leroy via Bugzilla:
https://bugzilla.kernel.org/show_bug.cgi?id=213421

[
In ppc32 functions section, the Y2038 compliant function
__kernel_clock_gettime64() is missing.

It was added by commit d0e3fc69d00d
("powerpc/vdso: Provide __kernel_clock_gettime64() on vdso32")
]

.../linux$ git describe d0e3fc69d00d
v5.10-rc2-76-gd0e3fc69d00d

Reported-by: Christophe Leroy <christophe.leroy@csgroup.eu>
Signed-off-by: Alejandro Colomar <alx.manpages@gmail.com>
Signed-off-by: Michael Kerrisk <mtk.manpages@gmail.com>
4 years agostrlen.3, wcslen.3: Recommend alternatives where input buffer might not be null-termi...
Michael Kerrisk [Sun, 8 Aug 2021 02:16:15 +0000 (04:16 +0200)] 
strlen.3, wcslen.3: Recommend alternatives where input buffer might not be null-terminated

Reported-by: Jonny Grant <jg@jguk.org>
Reported-by: Alejandro Colomar <alx.manpages@gmail.com>
Signed-off-by: Michael Kerrisk <mtk.manpages@gmail.com>
4 years agoexecve.2: The pathname given to interpreter is not necessarily absolute
Michael Kerrisk [Sun, 8 Aug 2021 02:01:21 +0000 (04:01 +0200)] 
execve.2: The pathname given to interpreter is not necessarily absolute

As pointed out by Nora, the example shown in the manual
page already demonstrates that the pathname is not absolute!

Reported-by: Nora Platiel <nplatiel@gmx.us>
Signed-off-by: Michael Kerrisk <mtk.manpages@gmail.com>
4 years agogetauxval.3: SEE ALSO: add execve(2)
Michael Kerrisk [Sun, 8 Aug 2021 01:58:01 +0000 (03:58 +0200)] 
getauxval.3: SEE ALSO: add execve(2)

Since this page discusses program execution, a link to execve(2)
seems appropriate.

Signed-off-by: Michael Kerrisk <mtk.manpages@gmail.com>
4 years agoexecve.2: SEE ALSO: getauxval(3)
Michael Kerrisk [Sun, 8 Aug 2021 01:55:54 +0000 (03:55 +0200)] 
execve.2: SEE ALSO: getauxval(3)

getauxval(3) is useful background regarding execve(2).

Signed-off-by: Michael Kerrisk <mtk.manpages@gmail.com>
4 years agoseccomp_unotify.2: tfix
Jakub Wilk [Wed, 28 Jul 2021 20:19:57 +0000 (22:19 +0200)] 
seccomp_unotify.2: tfix

Remove duplicated word.

Signed-off-by: Jakub Wilk <jwilk@jwilk.net>
Signed-off-by: Alejandro Colomar <alx.manpages@gmail.com>
Signed-off-by: Michael Kerrisk <mtk.manpages@gmail.com>
4 years agoseccomp_unotify.2: Minor tweaks (part 2) to Rodrigo's patch
Michael Kerrisk [Sun, 8 Aug 2021 01:12:43 +0000 (03:12 +0200)] 
seccomp_unotify.2: Minor tweaks (part 2) to Rodrigo's patch

Signed-off-by: Michael Kerrisk <mtk.manpages@gmail.com>
4 years agoseccomp_unotify.2: Minor tweaks to Rodrigo's patch
Alejandro Colomar [Wed, 28 Jul 2021 20:19:53 +0000 (22:19 +0200)] 
seccomp_unotify.2: Minor tweaks to Rodrigo's patch

Signed-off-by: Alejandro Colomar <alx.manpages@gmail.com>
Signed-off-by: Michael Kerrisk <mtk.manpages@gmail.com>
4 years agoseccomp_unotify.2: Document SECCOMP_ADDFD_FLAG_SEND
Rodrigo Campos [Wed, 28 Jul 2021 20:19:52 +0000 (22:19 +0200)] 
seccomp_unotify.2: Document SECCOMP_ADDFD_FLAG_SEND

This flag was recently added to Linux 5.14 by a patch I wrote:
https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=0ae71c7720e3ae3aabd2e8a072d27f7bd173d25c

This patch adds documentation for the flag, the error code that the flag
added and explains in the caveat when it is useful.

Signed-off-by: Rodrigo Campos <rodrigo@kinvolk.io>
Signed-off-by: Alejandro Colomar <alx.manpages@gmail.com>
Signed-off-by: Michael Kerrisk <mtk.manpages@gmail.com>
4 years agoman2/fallocate.2: tfix documentation of shared blocks
Dan Robertson [Wed, 28 Jul 2021 20:19:42 +0000 (22:19 +0200)] 
man2/fallocate.2: tfix documentation of shared blocks

Fix a typo in the documentation of using fallocate to allocate shared
blocks. The flag FALLOC_FL_UNSHARE should instead be documented as
FALLOC_FL_UNSHARE_RANGE.

Fixes: 63a599c657d8 ("man2/fallocate.2: Document behavior with shared blocks")
Signed-off-by: Dan Robertson <dan@dlrobertson.com>
Reviewed-by: Darrick J. Wong <djwong@kernel.org>
Signed-off-by: Alejandro Colomar <alx.manpages@gmail.com>
Signed-off-by: Michael Kerrisk <mtk.manpages@gmail.com>