From 87bbfb6b12322d79abc979d6a001c18eb875ae45 Mon Sep 17 00:00:00 2001 From: Andrew Collins Date: Mon, 17 Jun 2013 15:24:05 -0600 Subject: [PATCH] Default to comparing all attributes if no oo_id_attrs defined Since commit: "cache pickup: Avoid duplicates during cache pickup", nfnl_ct_alloc_cache no longer properly fills the cache, as it doesn't define oo_id_attrs so all items are considered duplicates. Instead of adding a ~0 oo_id_attrs to ct_obj, this changes nl_object_identical to default to comparing all attributes if neither oo_id_attrs_get or oo_id_attrs are provided. Signed-off-by: Thomas Graf --- lib/object.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/lib/object.c b/lib/object.c index b1ebe51..9293df9 100644 --- a/lib/object.c +++ b/lib/object.c @@ -321,8 +321,10 @@ int nl_object_identical(struct nl_object *a, struct nl_object *b) if (req_attrs_a != req_attrs_b) return 0; req_attrs = req_attrs_a; - } else { + } else if (ops->oo_id_attrs) { req_attrs = ops->oo_id_attrs; + } else { + req_attrs = 0xFFFFFFFF; } if (req_attrs == 0xFFFFFFFF) req_attrs = a->ce_mask & b->ce_mask;