pivot_root.2: Remove bogus a bogus EBUSY error case

The note that EBUSY is given if a filesystem is already mounted
on 'Iput_old' was never really true. That restriction was in
Linux 2.3.14, but removed in Linux 2.3.99-pre6 so it never made
it to mainline.

The relevant diff in pivot_root() was:

        error = -EBUSY;
-       if (d_new_root->d_sb == root->d_sb || d_put_old->d_sb == root->d_sb)
+       if (new_nd.mnt == root_mnt || old_nd.mnt == root_mnt)
                goto out2; /* loop */
-       if (d_put_old != d_put_old->d_covers)
-               goto out2; /* mount point is busy */
        error = -EINVAL;

Signed-off-by: Michael Kerrisk <mtk.manpages@gmail.com>
This commit is contained in:
Michael Kerrisk 2019-07-30 12:17:34 +02:00
parent 43d438e29b
commit 071505e9fb
1 changed files with 1 additions and 2 deletions

View File

@ -115,8 +115,7 @@ may fail with any of the same errors as
Additionally, it may fail with the following errors:
.TP
.B EBUSY
\fInew_root\fP or \fIput_old\fP are on the current root filesystem,
or a filesystem is already mounted on \fIput_old\fP.
\fInew_root\fP or \fIput_old\fP are on the current root filesystem.
.TP
.B EINVAL
.I new_root