Re: Bug/misfeature of "securityfs"

From: Markku Savela
Date: Tue May 27 2008 - 01:45:07 EST



> From: Greg KH <greg@xxxxxxxxx>
> On Tue, May 27, 2008 at 10:20:17AM +1000, James Morris wrote:
> > On Mon, 26 May 2008, Markku Savela wrote:
> >
> > >
> > > I write a module which creates a securityfs on init
> > >
> > > foobar = securityfs_create_dir("foobar", NULL)
> > > and on exit it does
> > > security_fs_remove(foobar);
> > >
> > > When I do "insmod" and "rmmod", I see
> > >
> > > /sys/kernel/security/foobar/
> > >
> > > appear and go away.
> > >
> > > Now, if have a shell and do "cd /sys/kernel/security/foobar", the
> > > "rmmod" does not remove the directory. The directory disappears when I
> > > exit the shell from it via "cd ..". This is fine, and as it should be,
> > > but....
> > >
> > > IF, while having the shell in the directory, I try to "insmod" again,
> > > the insmod fails with "-1 File exists". Again, understandable, BUT
> > > when after this I exit the shell from the directory, IT DOES NOT GO
> > > AWAY. It's permanetly existing, and module install fails always with
> > > "File Exists".
> > >
> > > Is this a bug, or am doing something wrong?
>
> Yeah, the whole sequence above is "wrong" :)
>
> How is the file always sticking around? Can you still see it in other
> shells? Is a process still located there somehow?
>
> securityfs is just using libfs for all of this, there shouldn't be any
> problem here, unless it is also present there.
>
> Or maybe we aren't cleaning up properly on the "file exists" code path?
> Care to look into that?
>
> thanks,
>
> greg k-h

I think my original description is somewhat misleading: the file
exists seems to come from the "insmod" for the module, not for the
seurityfs directory, becuase it appears to think that the module is
still loaded (while lsmod does not show it).

The directory is visible from other shells.
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/