summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAndrew Collins <bsderandrew@gmail.com>2013-06-17 15:24:05 -0600
committerThomas Graf <tgraf@suug.ch>2013-06-27 01:12:28 +0200
commit87bbfb6b12322d79abc979d6a001c18eb875ae45 (patch)
treeb7455fb3a2150b6b7defd69ffaa7acafed1c783b
parentc1de0f3129fe699ff838d4b0ddcfddb5e67ef777 (diff)
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 <tgraf@suug.ch>
-rw-r--r--lib/object.c4
1 files changed, 3 insertions, 1 deletions
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;