userns: Remove implicit MNT_NODEV fragility.
authorEric W. Biederman <ebiederm@xmission.com>
Wed, 18 May 2016 18:50:06 +0000 (13:50 -0500)
committerEric W. Biederman <ebiederm@xmission.com>
Thu, 23 Jun 2016 20:47:23 +0000 (15:47 -0500)
commit67690f937c38bbab1d94cb45f6a32e61612834ae
treeb15e18fb82f42d4001c7d0b4e2d9d3b2113db95c
parenta1935c1738af53249a02290ff7c10e8a6e650a16
userns: Remove implicit MNT_NODEV fragility.

Replace the implict setting of MNT_NODEV on mounts that happen with
just user namespace permissions with an implicit setting of SB_I_NODEV
in s_iflags.  The visibility of the implicit MNT_NODEV has caused
problems in the past.

With this change the fragile case where an implicit MNT_NODEV needs to
be preserved in do_remount is removed.  Using SB_I_NODEV is much less
fragile as s_iflags are set during the original mount and never
changed.

In do_new_mount with the implicit setting of MNT_NODEV gone, the only
code that can affect mnt_flags is fs_fully_visible so simplify the if
statement and reduce the indentation of the code to make that clear.

Acked-by: Seth Forshee <seth.forshee@canonical.com>
Signed-off-by: "Eric W. Biederman" <ebiederm@xmission.com>
fs/namespace.c
fs/super.c