Re: Bug/misfeature of "securityfs"

From: Greg KH
Date: Tue May 27 2008 - 00:36:32 EST


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
--
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/