projects
/
deliverable
/
linux.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
[NET]: Add a network namespace parameter to struct sock
[deliverable/linux.git]
/
net
/
ipv4
/
ipmr.c
diff --git
a/net/ipv4/ipmr.c
b/net/ipv4/ipmr.c
index 0ebae413ae873c733d21880c8ceadf5ebbde18b1..7003cc1b7fe26c5c87c055d15f489214f26ae356 100644
(file)
--- a/
net/ipv4/ipmr.c
+++ b/
net/ipv4/ipmr.c
@@
-152,9
+152,11
@@
struct net_device *ipmr_new_tunnel(struct vifctl *v)
dev->flags |= IFF_MULTICAST;
in_dev = __in_dev_get_rtnl(dev);
dev->flags |= IFF_MULTICAST;
in_dev = __in_dev_get_rtnl(dev);
- if (in_dev == NULL
&& (in_dev = inetdev_init(dev)) == NULL
)
+ if (in_dev == NULL)
goto failure;
goto failure;
- in_dev->cnf.rp_filter = 0;
+
+ ipv4_devconf_setall(in_dev);
+ IPV4_DEVCONF(in_dev->cnf, RP_FILTER) = 0;
if (dev_open(dev))
goto failure;
if (dev_open(dev))
goto failure;
@@
-218,10
+220,15
@@
static struct net_device *ipmr_reg_vif(void)
}
dev->iflink = 0;
}
dev->iflink = 0;
- if ((in_dev = inetdev_init(dev)) == NULL)
+ rcu_read_lock();
+ if ((in_dev = __in_dev_get_rcu(dev)) == NULL) {
+ rcu_read_unlock();
goto failure;
goto failure;
+ }
- in_dev->cnf.rp_filter = 0;
+ ipv4_devconf_setall(in_dev);
+ IPV4_DEVCONF(in_dev->cnf, RP_FILTER) = 0;
+ rcu_read_unlock();
if (dev_open(dev))
goto failure;
if (dev_open(dev))
goto failure;
@@
-281,7
+288,7
@@
static int vif_delete(int vifi)
dev_set_allmulti(dev, -1);
if ((in_dev = __in_dev_get_rtnl(dev)) != NULL) {
dev_set_allmulti(dev, -1);
if ((in_dev = __in_dev_get_rtnl(dev)) != NULL) {
-
in_dev->cnf.mc_forwarding
--;
+
IPV4_DEVCONF(in_dev->cnf, MC_FORWARDING)
--;
ip_rt_multicast_event(in_dev);
}
ip_rt_multicast_event(in_dev);
}
@@
-426,7
+433,7
@@
static int vif_add(struct vifctl *vifc, int mrtsock)
if ((in_dev = __in_dev_get_rtnl(dev)) == NULL)
return -EADDRNOTAVAIL;
if ((in_dev = __in_dev_get_rtnl(dev)) == NULL)
return -EADDRNOTAVAIL;
-
in_dev->cnf.mc_forwarding
++;
+
IPV4_DEVCONF(in_dev->cnf, MC_FORWARDING)
++;
dev_set_allmulti(dev, +1);
ip_rt_multicast_event(in_dev);
dev_set_allmulti(dev, +1);
ip_rt_multicast_event(in_dev);
@@
-841,7
+848,7
@@
static void mrtsock_destruct(struct sock *sk)
{
rtnl_lock();
if (sk == mroute_socket) {
{
rtnl_lock();
if (sk == mroute_socket) {
-
ipv4_devconf.mc_forwarding
--;
+
IPV4_DEVCONF_ALL(MC_FORWARDING)
--;
write_lock_bh(&mrt_lock);
mroute_socket=NULL;
write_lock_bh(&mrt_lock);
mroute_socket=NULL;
@@
-890,7
+897,7
@@
int ip_mroute_setsockopt(struct sock *sk,int optname,char __user *optval,int opt
mroute_socket=sk;
write_unlock_bh(&mrt_lock);
mroute_socket=sk;
write_unlock_bh(&mrt_lock);
-
ipv4_devconf.mc_forwarding
++;
+
IPV4_DEVCONF_ALL(MC_FORWARDING)
++;
}
rtnl_unlock();
return ret;
}
rtnl_unlock();
return ret;
@@
-1910,7
+1917,7
@@
void __init ip_mr_init(void)
mrt_cachep = kmem_cache_create("ip_mrt_cache",
sizeof(struct mfc_cache),
0, SLAB_HWCACHE_ALIGN|SLAB_PANIC,
mrt_cachep = kmem_cache_create("ip_mrt_cache",
sizeof(struct mfc_cache),
0, SLAB_HWCACHE_ALIGN|SLAB_PANIC,
- NULL
, NULL
);
+ NULL);
init_timer(&ipmr_expire_timer);
ipmr_expire_timer.function=ipmr_expire_process;
register_netdevice_notifier(&ip_mr_notifier);
init_timer(&ipmr_expire_timer);
ipmr_expire_timer.function=ipmr_expire_process;
register_netdevice_notifier(&ip_mr_notifier);
This page took
0.070518 seconds
and
5
git commands to generate.