On 11/13/17 7:05 AM, Jiri Pirko wrote: > diff --git a/net/core/dev.c b/net/core/dev.c > index 11596a3..877979f 100644 > --- a/net/core/dev.c > +++ b/net/core/dev.c > @@ -8250,7 +8250,7 @@ int dev_change_net_namespace(struct net_device *dev, > struct net *net, const char > > /* Don't allow namespace local devices to be moved. */ > err = -EINVAL; > - if (dev->features & NETIF_F_NETNS_LOCAL) > + if (dev->features & NETIF_F_NETNS_LOCAL || dev_netns_blocked(dev)) > goto out; > > /* Ensure the device has been registrered */
Add the extack arg to dev_change_net_namespace and tell user why the namespace change is not allowed. And for the netns_blocked case, EINVAL does not seem the proper error code since the device is legit.