netfilter: nft_hash: support deletion of inactive elements
authorPablo Neira Ayuso <pablo@netfilter.org>
Mon, 20 Jun 2016 22:12:26 +0000 (00:12 +0200)
committerPablo Neira Ayuso <pablo@netfilter.org>
Fri, 24 Jun 2016 09:03:27 +0000 (11:03 +0200)
commit8eee54be73f4b938dbf48e95c0dbecb5f19b08ee
tree7e7be64d7f5e73d182327df710430ec37e5ee18b
parent4e5001651f5e488eac378ebabc5bde2a8f1ea861
netfilter: nft_hash: support deletion of inactive elements

New elements are inactive in the preparation phase, and its
NFT_SET_ELEM_BUSY_MASK flag is set on.

This busy flag doesn't allow us to delete it from the same transaction,
following a sequence like:

begin transaction
add element X
delete element X
end transaction

This sequence is valid and may be triggered by robots. To resolve this
problem, allow deactivating elements that are active in the current
generation (ie. those that has been just added in this batch).

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