net: Remove rtnl_lock() in nf_ct_iterate_destroy()
authorKirill Tkhai <ktkhai@virtuozzo.com>
Thu, 29 Mar 2018 16:21:20 +0000 (19:21 +0300)
committerDavid S. Miller <davem@davemloft.net>
Thu, 29 Mar 2018 17:47:54 +0000 (13:47 -0400)
rtnl_lock() doesn't protect net::ct::count,
and it's not needed for__nf_ct_unconfirmed_destroy()
and for nf_queue_nf_hook_drop().

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

index 370f9b7..41ff04e 100644 (file)
@@ -1763,7 +1763,6 @@ nf_ct_iterate_destroy(int (*iter)(struct nf_conn *i, void *data), void *data)
 {
        struct net *net;
 
-       rtnl_lock();
        down_read(&net_rwsem);
        for_each_net(net) {
                if (atomic_read(&net->ct.count) == 0)
@@ -1772,7 +1771,6 @@ nf_ct_iterate_destroy(int (*iter)(struct nf_conn *i, void *data), void *data)
                nf_queue_nf_hook_drop(net);
        }
        up_read(&net_rwsem);
-       rtnl_unlock();
 
        /* Need to wait for netns cleanup worker to finish, if its
         * running -- it might have deleted a net namespace from