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

Commit 5a552617 authored by Eric Paris's avatar Eric Paris Committed by James Morris
Browse files

SELinux: don't BUG if fs reuses a superblock



I (wrongly) assumed that nfs_xdev_get_sb() would not ever share a superblock
and so cloning mount options would always be correct.  Turns out that isn't
the case and we could fall over a BUG_ON() that wasn't a BUG at all.  Since
there is little we can do to reconcile different mount options this patch
just leaves the sb alone and the first set of options wins.

Signed-off-by: default avatarEric Paris <eparis@redhat.com>
Acked-by: default avatarStephen Smalley <sds@tycho.nsa.gov>
Acked-by: default avatarTrond Myklebust <trond.myklebust@fys.uio.no>
Signed-off-by: default avatarJames Morris <jmorris@namei.org>
parent 7180c4c9
Loading
Loading
Loading
Loading
+4 −4
Original line number Original line Diff line number Diff line
@@ -760,13 +760,13 @@ static void selinux_sb_clone_mnt_opts(const struct super_block *oldsb,
	 * this early in the boot process. */
	 * this early in the boot process. */
	BUG_ON(!ss_initialized);
	BUG_ON(!ss_initialized);


	/* this might go away sometime down the line if there is a new user
	 * of clone, but for now, nfs better not get here... */
	BUG_ON(newsbsec->initialized);

	/* how can we clone if the old one wasn't set up?? */
	/* how can we clone if the old one wasn't set up?? */
	BUG_ON(!oldsbsec->initialized);
	BUG_ON(!oldsbsec->initialized);


	/* if fs is reusing a sb, just let its options stand... */
	if (newsbsec->initialized)
		return;

	mutex_lock(&newsbsec->lock);
	mutex_lock(&newsbsec->lock);


	newsbsec->flags = oldsbsec->flags;
	newsbsec->flags = oldsbsec->flags;