netfilter: nf_tables: honor NLM_F_EXCL flag in set element insertion
authorPablo Neira Ayuso <pablo@netfilter.org>
Wed, 24 Aug 2016 10:41:54 +0000 (12:41 +0200)
committerPablo Neira Ayuso <pablo@netfilter.org>
Fri, 26 Aug 2016 15:30:20 +0000 (17:30 +0200)
commitc016c7e45ddfa5085b35b644e659ec014969740d
tree5311ad15af134ee0839f59612f67796e3094b3a8
parent5ca8cc5bf11faed257c762018aea9106d529232f
netfilter: nf_tables: honor NLM_F_EXCL flag in set element insertion

If the NLM_F_EXCL flag is set, then new elements that clash with an
existing one return EEXIST. In case you try to add an element whose
data area differs from what we have, then this returns EBUSY. If no
flag is specified at all, then this returns success to userspace.

This patch also update the set insert operation so we can fetch the
existing element that clashes with the one you want to add, we need
this to make sure the element data doesn't differ.

Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
include/net/netfilter/nf_tables.h
net/netfilter/nf_tables_api.c
net/netfilter/nft_set_hash.c
net/netfilter/nft_set_rbtree.c