git://ftp.safe.ca
/
safe
/
jmp
/
linux-2.6
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Merge branch 'master' of git://git.kernel.org/pub/scm/linux/kernel/git/davem/net...
[safe/jmp/linux-2.6]
/
net
/
bridge
/
br_netlink.c
diff --git
a/net/bridge/br_netlink.c
b/net/bridge/br_netlink.c
index
0fcf6f0
..
fcffb3f
100644
(file)
--- a/
net/bridge/br_netlink.c
+++ b/
net/bridge/br_netlink.c
@@
-12,6
+12,8
@@
#include <linux/kernel.h>
#include <net/rtnetlink.h>
#include <linux/kernel.h>
#include <net/rtnetlink.h>
+#include <net/net_namespace.h>
+#include <net/sock.h>
#include "br_private.h"
static inline size_t br_nlmsg_size(void)
#include "br_private.h"
static inline size_t br_nlmsg_size(void)
@@
-80,6
+82,7
@@
nla_put_failure:
*/
void br_ifinfo_notify(int event, struct net_bridge_port *port)
{
*/
void br_ifinfo_notify(int event, struct net_bridge_port *port)
{
+ struct net *net = dev_net(port->dev);
struct sk_buff *skb;
int err = -ENOBUFS;
struct sk_buff *skb;
int err = -ENOBUFS;
@@
-95,10
+98,11
@@
void br_ifinfo_notify(int event, struct net_bridge_port *port)
kfree_skb(skb);
goto errout;
}
kfree_skb(skb);
goto errout;
}
- err = rtnl_notify(skb, 0, RTNLGRP_LINK, NULL, GFP_ATOMIC);
+ rtnl_notify(skb, net, 0, RTNLGRP_LINK, NULL, GFP_ATOMIC);
+ return;
errout:
if (err < 0)
errout:
if (err < 0)
- rtnl_set_sk_err(RTNLGRP_LINK, err);
+ rtnl_set_sk_err(
net,
RTNLGRP_LINK, err);
}
/*
}
/*
@@
-106,11
+110,12
@@
errout:
*/
static int br_dump_ifinfo(struct sk_buff *skb, struct netlink_callback *cb)
{
*/
static int br_dump_ifinfo(struct sk_buff *skb, struct netlink_callback *cb)
{
+ struct net *net = sock_net(skb->sk);
struct net_device *dev;
int idx;
idx = 0;
struct net_device *dev;
int idx;
idx = 0;
- for_each_netdev(dev) {
+ for_each_netdev(
net,
dev) {
/* not a bridge port */
if (dev->br_port == NULL || idx < cb->args[0])
goto skip;
/* not a bridge port */
if (dev->br_port == NULL || idx < cb->args[0])
goto skip;
@@
-134,6
+139,7
@@
skip:
*/
static int br_rtm_setlink(struct sk_buff *skb, struct nlmsghdr *nlh, void *arg)
{
*/
static int br_rtm_setlink(struct sk_buff *skb, struct nlmsghdr *nlh, void *arg)
{
+ struct net *net = sock_net(skb->sk);
struct ifinfomsg *ifm;
struct nlattr *protinfo;
struct net_device *dev;
struct ifinfomsg *ifm;
struct nlattr *protinfo;
struct net_device *dev;
@@
-155,7
+161,7
@@
static int br_rtm_setlink(struct sk_buff *skb, struct nlmsghdr *nlh, void *arg)
if (new_state > BR_STATE_BLOCKING)
return -EINVAL;
if (new_state > BR_STATE_BLOCKING)
return -EINVAL;
- dev = __dev_get_by_index(ifm->ifi_index);
+ dev = __dev_get_by_index(
net,
ifm->ifi_index);
if (!dev)
return -ENODEV;
if (!dev)
return -ENODEV;