summaryrefslogtreecommitdiffstats
path: root/include/net/netfilter/nf_tables.h
diff options
context:
space:
mode:
authorPablo Neira Ayuso2014-04-04 03:36:42 +0200
committerPablo Neira Ayuso2014-05-19 12:06:12 +0200
commit60319eb1ca351aa36e29d58d2e60ba9a9836265a (patch)
tree730f96cdcbb54f61cd9b449bd6c5c68def0dcbf7 /include/net/netfilter/nf_tables.h
parentnetfilter: nf_tables: use new transaction infrastructure to handle table (diff)
downloadkernel-qcow2-linux-60319eb1ca351aa36e29d58d2e60ba9a9836265a.tar.gz
kernel-qcow2-linux-60319eb1ca351aa36e29d58d2e60ba9a9836265a.tar.xz
kernel-qcow2-linux-60319eb1ca351aa36e29d58d2e60ba9a9836265a.zip
netfilter: nf_tables: use new transaction infrastructure to handle elements
Leave the set content in consistent state if we fail to load the batch. Use the new generic transaction infrastructure to achieve this. Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
Diffstat (limited to 'include/net/netfilter/nf_tables.h')
-rw-r--r--include/net/netfilter/nf_tables.h10
1 files changed, 10 insertions, 0 deletions
diff --git a/include/net/netfilter/nf_tables.h b/include/net/netfilter/nf_tables.h
index 15bf745f198d..b08f2a941007 100644
--- a/include/net/netfilter/nf_tables.h
+++ b/include/net/netfilter/nf_tables.h
@@ -446,6 +446,16 @@ struct nft_trans_table {
#define nft_trans_table_enable(trans) \
(((struct nft_trans_table *)trans->data)->enable)
+struct nft_trans_elem {
+ struct nft_set *set;
+ struct nft_set_elem elem;
+};
+
+#define nft_trans_elem_set(trans) \
+ (((struct nft_trans_elem *)trans->data)->set)
+#define nft_trans_elem(trans) \
+ (((struct nft_trans_elem *)trans->data)->elem)
+
static inline struct nft_expr *nft_expr_first(const struct nft_rule *rule)
{
return (struct nft_expr *)&rule->data[0];