aboutsummaryrefslogtreecommitdiffstats
path: root/net
diff options
context:
space:
mode:
authorPavel Emelyanov <xemul@openvz.org>2008-04-16 04:11:13 -0400
committerDavid S. Miller <davem@davemloft.net>2008-04-16 04:11:13 -0400
commit0b67eceb198b77045950011e12bf176a7c11ad98 (patch)
tree6712704b88a6ea5b1a684f2ffcf47667c034b17b /net
parent96635522f7930025b8a56a7075db82c48a454a30 (diff)
[GRE]: Allow to create IPGRE tunnels in net namespaces.
I.e. set the proper net and mark as NETNS_LOCAL. Signed-off-by: Pavel Emelyanov <xemul@openvz.org> Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'net')
-rw-r--r--net/ipv4/ip_gre.c3
1 files changed, 3 insertions, 0 deletions
diff --git a/net/ipv4/ip_gre.c b/net/ipv4/ip_gre.c
index aa973812edc1..7ff52628a73f 100644
--- a/net/ipv4/ip_gre.c
+++ b/net/ipv4/ip_gre.c
@@ -278,6 +278,8 @@ static struct ip_tunnel * ipgre_tunnel_locate(struct net *net,
278 if (!dev) 278 if (!dev)
279 return NULL; 279 return NULL;
280 280
281 dev_net_set(dev, net);
282
281 if (strchr(name, '%')) { 283 if (strchr(name, '%')) {
282 if (dev_alloc_name(dev, name) < 0) 284 if (dev_alloc_name(dev, name) < 0)
283 goto failed_free; 285 goto failed_free;
@@ -1236,6 +1238,7 @@ static void ipgre_tunnel_setup(struct net_device *dev)
1236 dev->flags = IFF_NOARP; 1238 dev->flags = IFF_NOARP;
1237 dev->iflink = 0; 1239 dev->iflink = 0;
1238 dev->addr_len = 4; 1240 dev->addr_len = 4;
1241 dev->features |= NETIF_F_NETNS_LOCAL;
1239} 1242}
1240 1243
1241static int ipgre_tunnel_init(struct net_device *dev) 1244static int ipgre_tunnel_init(struct net_device *dev)