mirror of
https://github.com/torvalds/linux.git
synced 2025-12-07 20:06:24 +00:00
rtnetlink: Create link directly in target net namespace
Make rtnl_newlink_create() create device in target namespace directly. Avoid extra netns change when link netns is provided. Device drivers has been converted to be aware of link netns, that is not assuming device netns is and link netns is the same when ops->newlink() is called. Signed-off-by: Xiao Liang <shaw.leon@gmail.com> Reviewed-by: Kuniyuki Iwashima <kuniyu@amazon.com> Link: https://patch.msgid.link/20250219125039.18024-12-shaw.leon@gmail.com Signed-off-by: Jakub Kicinski <kuba@kernel.org>
This commit is contained in:
committed by
Jakub Kicinski
parent
9c0fc091dc
commit
7ca486d08a
@@ -3789,8 +3789,8 @@ static int rtnl_newlink_create(struct sk_buff *skb, struct ifinfomsg *ifm,
|
||||
name_assign_type = NET_NAME_ENUM;
|
||||
}
|
||||
|
||||
dev = rtnl_create_link(link_net ? : tgt_net, ifname,
|
||||
name_assign_type, ops, tb, extack);
|
||||
dev = rtnl_create_link(tgt_net, ifname, name_assign_type, ops, tb,
|
||||
extack);
|
||||
if (IS_ERR(dev)) {
|
||||
err = PTR_ERR(dev);
|
||||
goto out;
|
||||
@@ -3810,11 +3810,6 @@ static int rtnl_newlink_create(struct sk_buff *skb, struct ifinfomsg *ifm,
|
||||
err = rtnl_configure_link(dev, ifm, portid, nlh);
|
||||
if (err < 0)
|
||||
goto out_unregister;
|
||||
if (link_net) {
|
||||
err = dev_change_net_namespace(dev, tgt_net, ifname);
|
||||
if (err < 0)
|
||||
goto out_unregister;
|
||||
}
|
||||
if (tb[IFLA_MASTER]) {
|
||||
err = do_set_master(dev, nla_get_u32(tb[IFLA_MASTER]), extack);
|
||||
if (err)
|
||||
|
||||
Reference in New Issue
Block a user