netfilter: nft_set_pipapo: stop GC iteration if GC transaction allocation fails
commit 6d365eabce3c018a80f6e0379b17df2abb17405e upstream. nft_trans_gc_queue_sync() enqueues the GC transaction and it allocates a new one. If this allocation fails, then stop this GC sync run and retry later. Fixes: 5f68718b34a5 ("netfilter: nf_tables: GC transaction API to avoid race with control plane") Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org> Signed-off-by: Sasha Levin <sashal@kernel.org>
This commit is contained in:
parent
8c643a8e04
commit
973288e9d9
@ -1597,7 +1597,7 @@ static void pipapo_gc(const struct nft_set *_set, struct nft_pipapo_match *m)
|
|||||||
|
|
||||||
gc = nft_trans_gc_queue_sync(gc, GFP_ATOMIC);
|
gc = nft_trans_gc_queue_sync(gc, GFP_ATOMIC);
|
||||||
if (!gc)
|
if (!gc)
|
||||||
break;
|
return;
|
||||||
|
|
||||||
nft_pipapo_gc_deactivate(net, set, e);
|
nft_pipapo_gc_deactivate(net, set, e);
|
||||||
pipapo_drop(m, rulemap);
|
pipapo_drop(m, rulemap);
|
||||||
|
Loading…
Reference in New Issue
Block a user