Commit 5f96bf92 authored by Eric W. Biederman's avatar Eric W. Biederman Committed by Luis Henriques

mnt: Implicitly add MNT_NODEV on remount when it was implicitly added by mount

commit 3e186641 upstream.

Now that remount is properly enforcing the rule that you can't remove
nodev at least sandstorm.io is breaking when performing a remount.

It turns out that there is an easy intuitive solution implicitly
add nodev on remount when nodev was implicitly added on mount.
Tested-by: default avatarCedric Bosdonnat <cbosdonnat@suse.com>
Tested-by: default avatarRichard Weinberger <richard@nod.at>
Signed-off-by: default avatar"Eric W. Biederman" <ebiederm@xmission.com>
Signed-off-by: default avatarLuis Henriques <luis.henriques@canonical.com>
parent 20c3e542
...@@ -1973,7 +1973,13 @@ static int do_remount(struct path *path, int flags, int mnt_flags, ...@@ -1973,7 +1973,13 @@ static int do_remount(struct path *path, int flags, int mnt_flags,
} }
if ((mnt->mnt.mnt_flags & MNT_LOCK_NODEV) && if ((mnt->mnt.mnt_flags & MNT_LOCK_NODEV) &&
!(mnt_flags & MNT_NODEV)) { !(mnt_flags & MNT_NODEV)) {
return -EPERM; /* Was the nodev implicitly added in mount? */
if ((mnt->mnt_ns->user_ns != &init_user_ns) &&
!(sb->s_type->fs_flags & FS_USERNS_DEV_MOUNT)) {
mnt_flags |= MNT_NODEV;
} else {
return -EPERM;
}
} }
if ((mnt->mnt.mnt_flags & MNT_LOCK_NOSUID) && if ((mnt->mnt.mnt_flags & MNT_LOCK_NOSUID) &&
!(mnt_flags & MNT_NOSUID)) { !(mnt_flags & MNT_NOSUID)) {
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment