mbox series

[v1,net-next,0/8] rtnetlink: Convert rtnl_newlink() to per-netns RTNL.

Message ID 20241105020514.41963-1-kuniyu@amazon.com (mailing list archive)
Headers show
Series rtnetlink: Convert rtnl_newlink() to per-netns RTNL. | expand

Message

Kuniyuki Iwashima Nov. 5, 2024, 2:05 a.m. UTC
Patch 1 introduces struct rtnl_nets and helper functions to acquire
multiple per-netns RTNL in rtnl_newlink().

Patch 2 - 6 are to prefetch the peer device's netns in rtnl_newlink().

Patch 7 converts rtnl_newlink() to per-netns RTNL.

Patch 8 pushes RTNL down to rtnl_dellink() and rtnl_setlink(), but
the conversion will not be completed unless we support cases with
peer/upper/lower devices.


Kuniyuki Iwashima (8):
  rtnetlink: Introduce struct rtnl_nets and helpers.
  rtnetlink: Factorise rtnl_link_get_net_tb().
  rtnetlink: Add peer_type in struct rtnl_link_ops.
  veth: Set VETH_INFO_PEER to veth_link_ops.peer_type.
  vxcan: Set VXCAN_INFO_PEER to vxcan_link_ops.peer_type.
  netkit: Set IFLA_NETKIT_PEER_INFO to netkit_link_ops.peer_type.
  rtnetlink: Convert RTM_NEWLINK to per-netns RTNL.
  rtnetlink: Register rtnl_dellink() and rtnl_setlink() with
    RTNL_FLAG_DOIT_PERNET_WIP.

 drivers/net/can/vxcan.c |  12 +--
 drivers/net/netkit.c    |  11 +--
 drivers/net/veth.c      |  18 +----
 include/net/rtnetlink.h |  14 ++++
 net/core/rtnetlink.c    | 163 +++++++++++++++++++++++++++++++++++++---
 5 files changed, 175 insertions(+), 43 deletions(-)