Thread (7 messages) 7 messages, 3 authors, 2008-06-04

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
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help