Blame SOURCES/0004-intervals-do-not-empty-cache-for-maps.patch

e34dd0
From 5a1d00b37a06bdf37bf392af05236469b6636fb9 Mon Sep 17 00:00:00 2001
e34dd0
From: Phil Sutter <psutter@redhat.com>
e34dd0
Date: Fri, 24 Jun 2022 16:02:59 +0200
e34dd0
Subject: [PATCH] intervals: do not empty cache for maps
e34dd0
e34dd0
Bugzilla: https://bugzilla.redhat.com/show_bug.cgi?id=1917398
e34dd0
Upstream Status: nftables commit d434de8b50dcf
e34dd0
e34dd0
commit d434de8b50dcf3f5f4ca027e122a7df9d4e5d8e1
e34dd0
Author: Pablo Neira Ayuso <pablo@netfilter.org>
e34dd0
Date:   Thu Jun 16 10:53:56 2022 +0200
e34dd0
e34dd0
    intervals: do not empty cache for maps
e34dd0
e34dd0
    Translate set element to range and sort in maps for the NFT_SET_MAP
e34dd0
    case, which does not support for automerge yet.
e34dd0
e34dd0
    Fixes: 81e36530fcac ("src: replace interval segment tree overlap and automerge")
e34dd0
    Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
e34dd0
e34dd0
Signed-off-by: Phil Sutter <psutter@redhat.com>
e34dd0
---
e34dd0
 src/intervals.c | 9 ++++++---
e34dd0
 1 file changed, 6 insertions(+), 3 deletions(-)
e34dd0
e34dd0
diff --git a/src/intervals.c b/src/intervals.c
e34dd0
index 89f5c33..e203413 100644
e34dd0
--- a/src/intervals.c
e34dd0
+++ b/src/intervals.c
e34dd0
@@ -216,6 +216,12 @@ int set_automerge(struct list_head *msgs, struct cmd *cmd, struct set *set,
e34dd0
 	struct cmd *purge_cmd;
e34dd0
 	struct handle h = {};
e34dd0
 
e34dd0
+	if (set->flags & NFT_SET_MAP) {
e34dd0
+		set_to_range(init);
e34dd0
+		list_expr_sort(&init->expressions);
e34dd0
+		return 0;
e34dd0
+	}
e34dd0
+
e34dd0
 	if (existing_set) {
e34dd0
 		if (existing_set->init) {
e34dd0
 			list_splice_init(&existing_set->init->expressions,
e34dd0
@@ -229,9 +235,6 @@ int set_automerge(struct list_head *msgs, struct cmd *cmd, struct set *set,
e34dd0
 	set_to_range(init);
e34dd0
 	list_expr_sort(&init->expressions);
e34dd0
 
e34dd0
-	if (set->flags & NFT_SET_MAP)
e34dd0
-		return 0;
e34dd0
-
e34dd0
 	ctx.purge = set_expr_alloc(&internal_location, set);
e34dd0
 
e34dd0
 	setelem_automerge(&ctx;;
e34dd0
-- 
e34dd0
2.36.1
e34dd0