mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git
synced 2024-08-26 19:00:25 +00:00
net: fix sysfs permssions when device changes network namespace
Now that we moved all the helpers in place and make use netdev_change_owner() to fixup the permissions when moving network devices between network namespaces. Signed-off-by: Christian Brauner <christian.brauner@ubuntu.com> Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
parent
d755407d44
commit
ef6a4c88e9
1 changed files with 8 additions and 1 deletions
|
@ -10003,6 +10003,7 @@ EXPORT_SYMBOL(unregister_netdev);
|
|||
|
||||
int dev_change_net_namespace(struct net_device *dev, struct net *net, const char *pat)
|
||||
{
|
||||
struct net *net_old = dev_net(dev);
|
||||
int err, new_nsid, new_ifindex;
|
||||
|
||||
ASSERT_RTNL();
|
||||
|
@ -10018,7 +10019,7 @@ int dev_change_net_namespace(struct net_device *dev, struct net *net, const char
|
|||
|
||||
/* Get out if there is nothing todo */
|
||||
err = 0;
|
||||
if (net_eq(dev_net(dev), net))
|
||||
if (net_eq(net_old, net))
|
||||
goto out;
|
||||
|
||||
/* Pick the destination device name, and ensure
|
||||
|
@ -10094,6 +10095,12 @@ int dev_change_net_namespace(struct net_device *dev, struct net *net, const char
|
|||
err = device_rename(&dev->dev, dev->name);
|
||||
WARN_ON(err);
|
||||
|
||||
/* Adapt owner in case owning user namespace of target network
|
||||
* namespace is different from the original one.
|
||||
*/
|
||||
err = netdev_change_owner(dev, net_old, net);
|
||||
WARN_ON(err);
|
||||
|
||||
/* Add the device back in the hashes */
|
||||
list_netdevice(dev);
|
||||
|
||||
|
|
Loading…
Reference in a new issue