Re: [PATCH] autofs: fix the wrong usage of the deprecated task_pgrp_nr()

Serge E. Hallyn
2009-01-19T20:48:56Z

Quoting Oleg Nesterov (oleg@redhat.com):
> On 01/19, Serge E. Hallyn wrote:
> >
> > Quoting Oleg Nesterov (oleg@redhat.com):
> > >
> > > Actually, I am very much surprized this one-liner patch has so
> > > many questions. Isn't it "obiously correct" ?
> >
> > I'm not sure which one-liner you're talking about. In fact,
> > the patch I'm looking at right now isn't the one i looked at
> > before my last response. Dangit.
> >
> > The patch turning the cached pid_t into a struct pid is
> > certainly mostly right. It shouldn't store a pid_t.
>
> This is the next patch. This one does
>
> --- CUR/fs/autofs/inode.c~1_AUTOFS 2009-01-12 23:07:46.000000000 +0100
> +++ CUR/fs/autofs/inode.c 2009-01-18 06:18:49.000000000 +0100
> @@ -78,7 +78,7 @@ static int parse_options(char *options,
>
> *uid = current_uid();
> *gid = current_gid();
> - *pgrp = task_pgrp_nr(current);
> + *pgrp = task_pgrp_vnr(current);

Ok, that was the one I had looked at earlier (though now I can't find
it). But that just seems wrong to me. We should certainly not be
caching a pid_vnr in the kernel. That is imo incomparably worse than
storing a pid_nr.

Can we just jump straight to caching the struct pid?

> *minproto = *maxproto = AUTOFS_PROTO_VERSION;
>
> > But as for passing pid_t's in from userspace
>
> passing pid_t's in from userspace uses current namespace, with
> or without the patch.

Which makes sense on the one hand, but OTOH could be confusing
if as I requested we print out init_pid_ns values. (sigh)

> > and especially
> > printing them out in error messages, I believe what Ian was
> > trying to do before, which seemed sensible, was to always
> > use values in the init_pid_ns. After all, if you do a DPRINTK
> > with pid_vnr(somepid), then by the time a human reads the logs
> > the subjective pidns might no longer exist. So for logs I'd
> > tend to agree with printing out the pid_t in the init_pid_ns.
>
> OK, may be this makes sense, this was not discussed yet. This
> can be changed. But otoh, if this code runs within the sub
> namespace, then it is not easy to see why oz_mode == true
> if we print the value in init_pid_ns.
>
> Oleg.

Yes... would it be overkill to just print both?

Or maybe I'm being silly. Every pidns goes away eventually
including the init_pid_ns :)

-serge