pivot_root.2: Remove text describing case where current root is not a mount point

One kernel printk() later, my suspicions seem confirmed: the text
describing the situation where the current root is not a mount
point (because of a chroot()) seems to be bogus. (Perhaps it was
true once upon a time.) In my testing, if the current root is not
a mount point, an EINVAL error results.

Signed-off-by: Michael Kerrisk <mtk.manpages@gmail.com>
This commit is contained in:
Michael Kerrisk 2019-07-30 22:59:17 +02:00
parent fc17fc6502
commit eb9078a7a9
1 changed files with 7 additions and 13 deletions

View File

@ -94,19 +94,8 @@ similarly, if
.I put_old
is an existing mount point, its propagation type must not be
.BR MS_SHARED .
.\" FIXME
.\" mtk: I am very suspicious of the following paragraph. My testing suggests
.\" that pivot_root() fails with the error EINVAL in the case where
.\" the current root (after chroot()) is not a mount point. And tehre are
.\" these lines in pivot_root():
.\" error = -EINVAL;
.\" if (root.mnt->mnt_root != root.dentry)
.\" goto out4; /* not a mountpoint */
.PP
If the current root is not a mount point (e.g., after an earlier
.BR chroot (2)),
then the mount point of the filesystem containing the current root directory
(i.e., not the directory itself) is mounted on \fIput_old\fP.
.IP \-
The current root directory must be a mount point.
.SH RETURN VALUE
On success, zero is returned.
On error, \-1 is returned, and
@ -149,6 +138,11 @@ is not a mount point.
\fIput_old\fP is not underneath \fInew_root\fP.
.TP
.B EINVAL
The current root directory is not a mount point
(because of an earlier
.BR chroot (2)).
.TP
.B EINVAL
The current root is on the rootfs (initial ramfs) filesystem; see NOTES.
.TP
.B EINVAL