Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 3e186641 authored by Eric W. Biederman's avatar Eric W. Biederman
Browse files

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



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>
Cc: stable@vger.kernel.org
Signed-off-by: default avatar"Eric W. Biederman" <ebiederm@xmission.com>
parent 5d01410f
Loading
Loading
Loading
Loading
+7 −1
Original line number Diff line number Diff line
@@ -2098,8 +2098,14 @@ static int do_remount(struct path *path, int flags, int mnt_flags,
	}
	if ((mnt->mnt.mnt_flags & MNT_LOCK_NODEV) &&
	    !(mnt_flags & MNT_NODEV)) {
		/* 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) &&
	    !(mnt_flags & MNT_NOSUID)) {
		return -EPERM;