Skip to content

Commit

Permalink
net: Allow DCBnl to use other namespaces besides init_net
Browse files Browse the repository at this point in the history
Allow DCB and net namespace to work together. This is useful if you
have containers that are bound to 'phys' interfaces that want to
also manage their DCB attributes.

The net namespace is taken from sock_net(skb->sk) of the netlink skb.

CC: "Eric W. Biederman" <ebiederm@xmission.com>
Signed-off-by: John Fastabend <john.r.fastabend@intel.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
  • Loading branch information
John Fastabend authored and David S. Miller committed Dec 10, 2012
1 parent 7b9e758 commit 7c77ab2
Showing 1 changed file with 2 additions and 5 deletions.
7 changes: 2 additions & 5 deletions net/dcb/dcbnl.c
Original file line number Diff line number Diff line change
Expand Up @@ -1665,9 +1665,6 @@ static int dcb_doit(struct sk_buff *skb, struct nlmsghdr *nlh, void *arg)
if ((nlh->nlmsg_type == RTM_SETDCB) && !capable(CAP_NET_ADMIN))
return -EPERM;

if (!net_eq(net, &init_net))
return -EINVAL;

ret = nlmsg_parse(nlh, sizeof(*dcb), tb, DCB_ATTR_MAX,
dcbnl_rtnl_policy);
if (ret < 0)
Expand All @@ -1684,7 +1681,7 @@ static int dcb_doit(struct sk_buff *skb, struct nlmsghdr *nlh, void *arg)
if (!tb[DCB_ATTR_IFNAME])
return -EINVAL;

netdev = dev_get_by_name(&init_net, nla_data(tb[DCB_ATTR_IFNAME]));
netdev = dev_get_by_name(net, nla_data(tb[DCB_ATTR_IFNAME]));
if (!netdev)
return -ENODEV;

Expand All @@ -1708,7 +1705,7 @@ static int dcb_doit(struct sk_buff *skb, struct nlmsghdr *nlh, void *arg)

nlmsg_end(reply_skb, reply_nlh);

ret = rtnl_unicast(reply_skb, &init_net, portid);
ret = rtnl_unicast(reply_skb, net, portid);
out:
dev_put(netdev);
return ret;
Expand Down

0 comments on commit 7c77ab2

Please sign in to comment.