This patch fixes spurious EEXIST errors.
Extend
6dce4a781fa8 ("netfilter: nft_set_rbtree: handle element
re-addition after deletion") to deal with elements with same end flags
in the same transation.
Reset the overlap flag as described by
4392e5177e05 ("netfilter:
nft_set_rbtree: Detect partial overlaps on insertion").
Fixes: 4392e5177e05 ("netfilter: nft_set_rbtree: Detect partial overlaps on insertion")
Fixes: 6dce4a781fa8 ("netfilter: nft_set_rbtree: handle element re-addition after deletion")
Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
Reviewed-by: Stefano Brivio <sbrivio@redhat.com>
Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
*ext = &rbe->ext;
return -EEXIST;
} else {
- p = &parent->rb_left;
+ overlap = false;
+ if (nft_rbtree_interval_end(rbe))
+ p = &parent->rb_left;
+ else
+ p = &parent->rb_right;
}
}