Re: [PATCH 5/7] pid: Implement pid_nr

From: Eric W. Biederman
Date: Wed Aug 16 2006 - 13:46:27 EST


Jan Engelhardt <jengelh@xxxxxxxxxxxxxxx> writes:

>>> +static inline pid_t pid_nr(struct pid *pid)
>>> +{
>>> + pid_t nr = 0;
>>> + if (pid)
>>> + nr = pid->nr;
>>> + return nr;
>>> +}
>>
>>When is it valid to be passing around a NULL 'struct pid *'?
>
> Is 0 even the right thing to return in the rare case that pid == NULL?
> -1 maybe?

I believe 0 is what we have used elsewhere.

A negative value for a pid is likely to be taken as the group of all
processes, or -EPERM, and it does really confusing things when fed through
the current f_getown implementation, with PIDTYPE_PGRP.

The only other possible interpretations of 0 are the idle process and
yourself. There is still some potential there, but largely 0 is much
less likely to be confused than -1. Especially as it doesn't change
when you negate it.

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