netfilter: nft_flow_offload: wait for garbage collector to run after cleanup
authorPablo Neira Ayuso <pablo@netfilter.org>
Thu, 1 Feb 2018 17:49:00 +0000 (18:49 +0100)
committerPablo Neira Ayuso <pablo@netfilter.org>
Fri, 2 Feb 2018 17:26:42 +0000 (18:26 +0100)
commitc7f0030b5b67866c588845abde7bf011de25b98a
tree88aa5bcfc07581b764d8db201d356a541c92ead3
parentba7cd5d95f25cc6005f687dabdb4e7a6063adda9
netfilter: nft_flow_offload: wait for garbage collector to run after cleanup

If netdevice goes down, then flowtable entries are scheduled to be
removed. Wait for garbage collector to have a chance to run so it can
delete them from the hashtable.

The flush call might sleep, so hold the nfnl mutex from
nft_flow_table_iterate() instead of rcu read side lock. The use of the
nfnl mutex is also implicitly fixing races between updates via nfnetlink
and netdevice event.

Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
net/netfilter/nf_tables_api.c
net/netfilter/nft_flow_offload.c