Skip to content

Commit

Permalink
net: fix sysfs permssions when device changes network namespace
Browse files Browse the repository at this point in the history
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>
  • Loading branch information
Christian Brauner authored and David S. Miller committed Feb 27, 2020
1 parent d755407 commit ef6a4c8
Showing 1 changed file with 8 additions and 1 deletion.
9 changes: 8 additions & 1 deletion net/core/dev.c
Original file line number Diff line number Diff line change
Expand Up @@ -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();
Expand All @@ -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
Expand Down Expand Up @@ -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);

Expand Down

0 comments on commit ef6a4c8

Please sign in to comment.