diff options
author | Pavel Emelyanov <xemul@parallels.com> | 2012-08-08 21:52:46 +0000 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2012-08-09 16:18:06 -0700 |
commit | 9c7dafbfab1554705f85523fead578aa1a3d338c (patch) | |
tree | 462dc2a2b854b3c7ad80a351a0ef780b790bc109 /net/core/rtnetlink.c | |
parent | b14f243a42c7aa43de71f878641acd003f223022 (diff) | |
download | kernel_goldelico_gta04-9c7dafbfab1554705f85523fead578aa1a3d338c.zip kernel_goldelico_gta04-9c7dafbfab1554705f85523fead578aa1a3d338c.tar.gz kernel_goldelico_gta04-9c7dafbfab1554705f85523fead578aa1a3d338c.tar.bz2 |
net: Allow to create links with given ifindex
Currently the RTM_NEWLINK results in -EOPNOTSUPP if the ifinfomsg->ifi_index
is not zero. I propose to allow requesting ifindices on link creation. This
is required by the checkpoint-restore to correctly restore a net namespace
(i.e. -- a container).
Signed-off-by: Pavel Emelyanov <xemul@parallels.com>
Acked-by: Eric Dumazet <edumazet@google.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'net/core/rtnetlink.c')
-rw-r--r-- | net/core/rtnetlink.c | 12 |
1 files changed, 7 insertions, 5 deletions
diff --git a/net/core/rtnetlink.c b/net/core/rtnetlink.c index db037c9..34d975b 100644 --- a/net/core/rtnetlink.c +++ b/net/core/rtnetlink.c @@ -1812,8 +1812,6 @@ replay: return -ENODEV; } - if (ifm->ifi_index) - return -EOPNOTSUPP; if (tb[IFLA_MAP] || tb[IFLA_MASTER] || tb[IFLA_PROTINFO]) return -EOPNOTSUPP; @@ -1839,10 +1837,14 @@ replay: return PTR_ERR(dest_net); dev = rtnl_create_link(net, dest_net, ifname, ops, tb); - - if (IS_ERR(dev)) + if (IS_ERR(dev)) { err = PTR_ERR(dev); - else if (ops->newlink) + goto out; + } + + dev->ifindex = ifm->ifi_index; + + if (ops->newlink) err = ops->newlink(net, dev, tb, data); else err = register_netdevice(dev); |