Re: [RFC][PATCH 2/5] pid: Generalize task_active_pid_ns

Sukadev Bhattiprolu
2008-12-01T21:15:57Z

Greg Kurz [gkurz@fr.ibm.com] wrote:
| On Thu, 2008-11-27 at 02:17 +0100, Bastian Blank wrote:
| > On Tue, Nov 25, 2008 at 07:45:28PM -0800, Sukadev Bhattiprolu wrote:
| > > Currently task_active_pid_ns is not safe to call after a
| > > task becomes a zombie and exit_task_namespaces is called,
| > > as nsproxy becomes NULL.
| >
| > Why do you need to be able to get the pid namespace from zombie
| > processes?

After exiting namespaces, the process notifies parent. With new changes
to signals (in this patchset), the signal code may need to determine
the namespace of sender (the exiting child in this case).

| Also according to nsproxy.h this access variant is only
| > allowed for the current task, anything else needs to take a rcu lock.

and sender still is 'current' (the exiting child).

| >
|
| That doesn't save ->nsproxy to be NULL... as shown in the very same
| example you're talking about.
|
| I agree with Eric and Sukadev that task_active_pid_ns() is unsafe. There
| isn't even a /* don't use with zombies */ in pid_namespace.h...

Hmm. Its not unsafe at present. It would become unsafe if the signals code
tries to determine the namespace of sender.