SELinux: don't BUG if fs reuses a superblock
[sfrench/cifs-2.6.git] / security / selinux / hooks.c
index 89bb6d36c0a7f69aec9d8e0e373fe68a3c820514..d39b59cf8a08c12f69ff257553a2f3bebd18a685 100644 (file)
@@ -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 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);
 
        /* 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;
        mutex_lock(&newsbsec->lock);
 
        newsbsec->flags = oldsbsec->flags;