[Devel] [PATCH RHEL7 COMMIT] net: Move mutex_unlock() in cleanup_net() up
Konstantin Khorenko
khorenko at virtuozzo.com
Wed May 27 21:34:58 MSK 2020
The commit is pushed to "branch-rh7-3.10.0-1127.8.2.vz7.161.x-ovz" and will appear at https://src.openvz.org/scm/ovz/vzkernel.git
after rh7-3.10.0-1127.8.2.vz7.161.3
------>
commit 56347e49285000aedd3c610eaefafb6cfaf2bf5c
Author: Kirill Tkhai <ktkhai at virtuozzo.com>
Date: Wed May 27 21:34:58 2020 +0300
net: Move mutex_unlock() in cleanup_net() up
ms commit bcab1ddd9b2b
net_sem protects from pernet_list changing, while
ops_free_list() makes simple kfree(), and it can't
race with other pernet_operations callbacks.
So we may release net_mutex earlier then it was.
Signed-off-by: Kirill Tkhai <ktkhai at virtuozzo.com>
Acked-by: Andrei Vagin <avagin at virtuozzo.com>
Signed-off-by: David S. Miller <davem at davemloft.net>
=====================
Patchset description:
Parallel per-net init/exit
https://jira.sw.ru/browse/PSBM-104158
---
net/core/net_namespace.c | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/net/core/net_namespace.c b/net/core/net_namespace.c
index f63e32495e493..9827efc52a2e6 100644
--- a/net/core/net_namespace.c
+++ b/net/core/net_namespace.c
@@ -529,11 +529,12 @@ static void cleanup_net(struct work_struct *work)
list_for_each_entry_reverse(ops, &pernet_list, list)
ops_exit_list(ops, &net_exit_list);
+ mutex_unlock(&net_mutex);
+
/* Free the net generic variables */
list_for_each_entry_reverse(ops, &pernet_list, list)
ops_free_list(ops, &net_exit_list);
- mutex_unlock(&net_mutex);
up_read(&net_sem);
list_for_each_entry(net, &net_kill_list, cleanup_list) {
More information about the Devel
mailing list