On 5/23/2012 5:46 PM, Casey Schaufler wrote: > From: Casey Schaufler <casey@xxxxxxxxxxxxxxxx> > Subject: [PATCH] Smack: fix smack_new_inode bogosities > > In January of 2012 Al Viro pointed out three bits of code that > he titled "new_inode_smack bogosities". This patch repairs these > errors. > > 1. smack_sb_kern_mount() included a NULL check that is impossible. > The check and NULL case are removed. > 2. smack_kb_kern_mount() included pointless locking. The locking is > removed. Since this is the only place that lock was used the lock > is removed from the superblock_smack structure. > 3. smk_fill_super() incorrectly and unnecessarily set the Smack label > for the smackfs root inode. The assignment has been removed. > > Targeted for git://gitorious.org/smack-next/kernel.git > > Signed-off-by: Casey Schaufler <casey@xxxxxxxxxxxxxxxx> Applied to git://gitorious.org/smack-next/kernel.git > > --- > > security/smack/smack.h | 1 - > security/smack/smack_lsm.c | 8 ++------ > security/smack/smackfs.c | 1 - > 3 files changed, 2 insertions(+), 8 deletions(-) > > diff --git a/security/smack/smack.h b/security/smack/smack.h > index cc361b8..76feb31 100644 > --- a/security/smack/smack.h > +++ b/security/smack/smack.h > @@ -43,7 +43,6 @@ struct superblock_smack { > char *smk_hat; > char *smk_default; > int smk_initialized; > - spinlock_t smk_sblock; /* for initialization */ > }; > > struct socket_smack { > diff --git a/security/smack/smack_lsm.c b/security/smack/smack_lsm.c > index d583c05..5a4d52c 100644 > --- a/security/smack/smack_lsm.c > +++ b/security/smack/smack_lsm.c > @@ -251,7 +251,6 @@ static int smack_sb_alloc_security(struct super_block *sb) > sbsp->smk_floor = smack_known_floor.smk_known; > sbsp->smk_hat = smack_known_hat.smk_known; > sbsp->smk_initialized = 0; > - spin_lock_init(&sbsp->smk_sblock); > > sb->s_security = sbsp; > > @@ -332,13 +331,10 @@ static int smack_sb_kern_mount(struct super_block *sb, int flags, void *data) > char *commap; > char *nsp; > > - spin_lock(&sp->smk_sblock); > - if (sp->smk_initialized != 0) { > - spin_unlock(&sp->smk_sblock); > + if (sp->smk_initialized != 0) > return 0; > - } > + > sp->smk_initialized = 1; > - spin_unlock(&sp->smk_sblock); > > for (op = data; op != NULL; op = commap) { > commap = strchr(op, ','); > diff --git a/security/smack/smackfs.c b/security/smack/smackfs.c > index 1810c9a..3686db7 100644 > --- a/security/smack/smackfs.c > +++ b/security/smack/smackfs.c > @@ -2051,7 +2051,6 @@ static int smk_fill_super(struct super_block *sb, void *data, int silent) > } > > root_inode = sb->s_root->d_inode; > - root_inode->i_security = new_inode_smack(smack_known_floor.smk_known); > > return 0; > } > > > > -- To unsubscribe from this list: send the line "unsubscribe linux-fsdevel" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html