From ecf237cc3872674d2fbe489b8a1e8449f4063d8b Mon Sep 17 00:00:00 2001 From: Garming Sam Date: Thu, 8 Sep 2016 14:40:40 +1200 Subject: [PATCH] rpmd: Skip bump of USN when vanishing forward links Signed-off-by: Garming Sam Reviewed-by: Andrew Bartlett --- source4/dsdb/samdb/ldb_modules/repl_meta_data.c | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/source4/dsdb/samdb/ldb_modules/repl_meta_data.c b/source4/dsdb/samdb/ldb_modules/repl_meta_data.c index 44fbbf46d76..7a5906eb86b 100644 --- a/source4/dsdb/samdb/ldb_modules/repl_meta_data.c +++ b/source4/dsdb/samdb/ldb_modules/repl_meta_data.c @@ -1312,6 +1312,18 @@ static int replmd_update_rpmd_element(struct ldb_context *ldb, } else if (LDB_FLAG_MOD_TYPE(el->flags) == LDB_FLAG_MOD_DELETE) { may_skip = true; } + } else if (a->linkID != 0 && LDB_FLAG_MOD_TYPE(el->flags) == LDB_FLAG_MOD_DELETE && + ldb_request_get_control(req, DSDB_CONTROL_REPLMD_VANISH_LINKS) != NULL) { + /* + * We intentionally skip the version bump when attempting to + * vanish links. + * + * The control is set by dbcheck and expunge-tombstones which + * both attempt to be non-replicating. Otherwise, making an + * alteration to the replication state would trigger a + * broadcast of all expunged objects. + */ + may_skip = true; } if (el->flags & DSDB_FLAG_INTERNAL_FORCE_META_DATA) { -- 2.11.4.GIT