diff options
author | Andrew Collins <bsderandrew@gmail.com> | 2013-06-17 15:24:05 -0600 |
---|---|---|
committer | Thomas Graf <tgraf@suug.ch> | 2013-06-27 01:12:28 +0200 |
commit | 87bbfb6b12322d79abc979d6a001c18eb875ae45 (patch) | |
tree | b7455fb3a2150b6b7defd69ffaa7acafed1c783b | |
parent | c1de0f3129fe699ff838d4b0ddcfddb5e67ef777 (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.c | 4 |
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; |