Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit ec9c7809 authored by Kirill Tkhai's avatar Kirill Tkhai Committed by David S. Miller
Browse files

ovs: Remove rtnl_lock() from ovs_exit_net()



Here we iterate for_each_net() and removes
vport from alive net to the exiting net.

ovs_net::dps are protected by ovs_mutex(),
and the others, who change it (ovs_dp_cmd_new(),
__dp_destroy()) also take it.
The same with datapath::ports list.

So, we remove rtnl_lock() here.

Signed-off-by: default avatarKirill Tkhai <ktkhai@virtuozzo.com>
Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
parent 350311aa
Loading
Loading
Loading
Loading
+0 −2
Original line number Diff line number Diff line
@@ -2363,12 +2363,10 @@ static void __net_exit ovs_exit_net(struct net *dnet)
	list_for_each_entry_safe(dp, dp_next, &ovs_net->dps, list_node)
		__dp_destroy(dp);

	rtnl_lock();
	down_read(&net_rwsem);
	for_each_net(net)
		list_vports_from_net(net, dnet, &head);
	up_read(&net_rwsem);
	rtnl_unlock();

	/* Detach all vports from given namespace. */
	list_for_each_entry_safe(vport, vport_next, &head, detach_list) {