[RFC][PATCH] Make access to taks's nsproxy liter

Eric W. Biederman ebiederm at xmission.com
Thu Aug 9 01:00:19 PDT 2007


Pavel Emelyanov <xemul at openvz.org> writes:

> Eric W. Biederman wrote:
>> Pavel Emelyanov <xemul at openvz.org> writes:
>>
>>> When someone wants to deal with some other taks's namespaces
>>> it has to lock the task and then to get the desired namespace
>>> if the one exists. This is slow on read-only paths and may be
>>> impossible in some cases.
>>>
>>> E.g. Oleg recently noticed a race between unshare() and the
>>> (just sent for review) pid namespaces - when the task notifies
>>> the parent it has to know the parent's namespace, but taking
>>> the task_lock() is impossible there - the code is under write
>>> locked tasklist lock.
>>>
>>> On the other hand switching the namespace on task (daemonize)
>>> and releasing the namespace (after the last task exit) is rather
>>> rare operation and we can sacrifice its speed to solve the
>>> issues above.
>>
>>
>> Looks pretty decent but we need to clearly say what lock
>> you have to have to assign to the nsproxy pointer.
>
> no locks - only current is allowed to change its nsproxy!

Exactly.  Just need a comment or something to make that clear.

Eric


More information about the Containers mailing list