Re: [net-2.6 patch 1/2][NETNS] fix device renaming for sysfs
From: Daniel Lezcano <hidden>
Date: 2008-06-04 13:50:23
Eric W. Biederman wrote:
Daniel Lezcano [off-list ref] writes:quoted
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.quoted
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