X-Git-Url: http://drtracing.org/?a=blobdiff_plain;f=fs%2Fnamespace.c;h=419f746d851d1c1745fc0edca4a37459a4b17f35;hb=c278256d05a2fc75b427fa6a5dc0024faa93465d;hp=a7ec92c051f5409da4ef23aab35030d230b975da;hpb=f762bfda2b81db4c3397a31e92f819818cf04efb;p=deliverable%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. */