Subject: Re: [net-2.6 patch 1/2][NETNS] fix device renaming for sysfs

From: Daniel Lezcano <[email-masked]>
Date: Wed, 04 Jun 2008 15:50:13 +0200

Eric W. Biederman wrote:
> Daniel Lezcano <[email-masked]> writes:
> 
>> When a netdev is moved across namespaces with the 'dev_change_net_namespace' 
>> function, the 'device_rename' function is used to fixup kobject and refresh 
>> the sysfs tree. The device_rename function will call kobject_rename and this
>> one will check if there is an object with the same name and this is the case
>> because we are renaming the object with the same name.
>>
>> The use of 'device_rename' seems for me wrong because we usually don't
>> rename it but just move it across namespaces. As we just want to do a 
>> mini "netdev_[un]register", IMO the functions 'netdev_[un]register_kobject' 
>> should be used instead, like an usual network device [un]registering.
> 
> device_rename is correct.  Because doing device_del; device_add removes
> any driver specific sysfs attributes.
> 
> Causing your patch to introduce subtle driver breakage only when we
> move a network device between namespaces.  Ouch!
> 
> To support this operation we need something like device_rename that
> can preserve driver specific attributes, and generally handle
> movement between namespaces.  Since device_rename already does 99% of
> what we need it to do I found it easier to extend device_rename to
> handle this case then to introduce yet another function into the
> kobject layer.
> 
>> This patch replace device_rename by netdev_unregister_kobject, followed by
>> netdev_register_kobject.
> 
> And sysfs comes a' tumblin' down.
> My apologies for not replying sooner I just spotted this.

My fault, I should have Cc'ed you when sending the email :(
Thanks for looking at this patch.

   -- Daniel