Skip to content

Commit

Permalink
SELinux: don't BUG if fs reuses a superblock
Browse files Browse the repository at this point in the history
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: Eric Paris <eparis@redhat.com>
Acked-by: Stephen Smalley <sds@tycho.nsa.gov>
Acked-by: Trond Myklebust <trond.myklebust@fys.uio.no>
Signed-off-by: James Morris <jmorris@namei.org>
  • Loading branch information
Eric Paris authored and James Morris committed Apr 9, 2008
1 parent 7180c4c commit 5a55261
Showing 1 changed file with 4 additions and 4 deletions.
8 changes: 4 additions & 4 deletions security/selinux/hooks.c
Original file line number Diff line number Diff line change
Expand Up @@ -760,13 +760,13 @@ static void selinux_sb_clone_mnt_opts(const struct super_block *oldsb,
* this early in the boot process. */
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?? */
BUG_ON(!oldsbsec->initialized);

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

mutex_lock(&newsbsec->lock);

newsbsec->flags = oldsbsec->flags;
Expand Down

0 comments on commit 5a55261

Please sign in to comment.