net: Allow DCBnl to use other namespaces besides init_net
Subsystems (2)
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]>
Signed-off-by John Fastabend <[email protected]>
--- net/dcb/dcbnl.c | 7 ++----- 1 file changed, 2 insertions(+), 5 deletions(-)
net/dcb/dcbnl.c +2 -5
@@ -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;
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]>Signed-off-by John Fastabend <[email protected]>
Applied.