Skip to contentSkip to conversation

net: Allow DCBnl to use other namespaces besides init_net

PATCH Applied John Fastabend 2 participants 2 messages Dec 10, 2012

Subsystems (2)
lore
Share & tools
lore
#0 lore raw

PATCH 1/1 net: Allow DCBnl to use other namespaces besides init_net

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" <[email protected]>
---
 net/dcb/dcbnl.c |    7 ++-----
 1 file changed, 2 insertions(+), 5 deletions(-)
net/dcb/dcbnl.c +2 -5
index b07c75d..1b588e2 100644
@@ -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)
@@ -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;
 
@@ -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;
maintainer Applied
#1 lore raw

From: John Fastabend <[email protected]>
Date: Sun, 09 Dec 2012 22:48:13 -0800

Quoted 8 lines

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" <[email protected]>

Applied.