net: Convert ipvs_core_ops
authorKirill Tkhai <ktkhai@virtuozzo.com>
Thu, 15 Mar 2018 09:11:25 +0000 (12:11 +0300)
committerDavid S. Miller <davem@davemloft.net>
Sat, 17 Mar 2018 21:07:39 +0000 (17:07 -0400)
These pernet_operations register and unregister nf hooks,
/proc entries, sysctl, percpu statistics. There are several
global lists, and the only list modified without exclusive
locks is ip_vs_conn_tab in ip_vs_conn_flush(). We iterate
the list and force the timers expire at the moment. Since
there were possible several timer expirations before this
patch, and since they are safe, the patch does not invent
new parallelism of their destruction. These pernet_operations
look safe to be converted.

Signed-off-by: Kirill Tkhai <ktkhai@virtuozzo.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
net/netfilter/ipvs/ip_vs_core.c

index 5f6f73c..c5d16e2 100644 (file)
@@ -2289,6 +2289,7 @@ static struct pernet_operations ipvs_core_ops = {
        .exit = __ip_vs_cleanup,
        .id   = &ip_vs_net_id,
        .size = sizeof(struct netns_ipvs),
+       .async = true,
 };
 
 static struct pernet_operations ipvs_core_dev_ops = {