Re: [RFC 1/5] user namespaces: Add a user_namespace ascreator/owner of uts_namespace

From: Greg KH
Date: Fri Dec 17 2010 - 15:07:51 EST


On Fri, Dec 17, 2010 at 01:46:45PM -0600, Serge Hallyn wrote:
> Quoting Greg KH (greg@xxxxxxxxx):
> > > +extern struct user_namespace init_user_ns;
> > > struct uts_namespace init_uts_ns = {
> > > .kref = {
> > > .refcount = ATOMIC_INIT(2),
> >
> > Wait, WTF?
> >
> > You have a static kref and you try to automatically instanciate it here?
>
> You're complaining about the pre-existing init_uts_ns right?

Yup.

> > As it's static, why are you even having a kref at all, what good does it
> > do you, you can't delete the thing,
>
> Can't delete this one, but can delete all the uts namespaces, obviously.
> As with init_tgcred in kernel/cred.c.
>
> It's initialized with a refcount which will keep it from ever getting
> freed.

That's my point. You are getting "lucky" by creating a static kref.
Which is a totally pointless thing to do, right?

> > it's always around, so just remove
> > it entirely please.
> >
> > Or, dynamically create it properly. In other words, this is majorly
> > broken.
>
> If we create it dynamically, then I don't think we can use it the way we
> do in kernel/utsname_sysctl.c for instance.

Why not? It's just a pointer to the structure instead of the structure
itself, right?

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/