X-Git-Url: http://git.cascardo.eti.br/?a=blobdiff_plain;f=fs%2Fnamespace.c;h=419f746d851d1c1745fc0edca4a37459a4b17f35;hb=7e3fd813717693597daaa95dee875f4cb2d911ef;hp=a7ec92c051f5409da4ef23aab35030d230b975da;hpb=46577e6a052ff5add7577ac748fb8628b3c3c7c9;p=cascardo%2Flinux.git diff --git a/fs/namespace.c b/fs/namespace.c index a7ec92c051f5..419f746d851d 100644 --- a/fs/namespace.c +++ b/fs/namespace.c @@ -1562,6 +1562,7 @@ void __detach_mounts(struct dentry *dentry) goto out_unlock; lock_mount_hash(); + event++; while (!hlist_empty(&mp->m_list)) { mnt = hlist_entry(mp->m_list.first, struct mount, mnt_mp_list); if (mnt->mnt.mnt_flags & MNT_UMOUNT) { @@ -3247,6 +3248,10 @@ static bool fs_fully_visible(struct file_system_type *type, int *new_mnt_flags) if (mnt->mnt.mnt_sb->s_iflags & SB_I_NOEXEC) mnt_flags &= ~(MNT_LOCK_NOSUID | MNT_LOCK_NOEXEC); + /* Don't miss readonly hidden in the superblock flags */ + if (mnt->mnt.mnt_sb->s_flags & MS_RDONLY) + mnt_flags |= MNT_LOCK_READONLY; + /* Verify the mount flags are equal to or more permissive * than the proposed new mount. */