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 5f6f73cf2174d1494a685d73ca94ea124da83de5..c5d16e2bc8e2c7827185d6a0571ceab003e3a29d 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 = {