From bbe231a61fc06a1a668e6b831fb8224526721f93 Mon Sep 17 00:00:00 2001 From: Samuel Just Date: Mon, 9 Mar 2015 08:25:27 -0700 Subject: [PATCH] PGLog: split divergent priors as well Signed-off-by: Samuel Just --- src/osd/PGLog.h | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/src/osd/PGLog.h b/src/osd/PGLog.h index 7d18f77c68c0..ffffe099c9ef 100644 --- a/src/osd/PGLog.h +++ b/src/osd/PGLog.h @@ -497,6 +497,19 @@ public: missing.split_into(child_pgid, split_bits, &(opg_log->missing)); opg_log->mark_dirty_to(eversion_t::max()); mark_dirty_to(eversion_t::max()); + + unsigned mask = ~((~0)<::iterator i = divergent_priors.begin(); + i != divergent_priors.end(); + ) { + if ((i->second.get_hash() & mask) == child_pgid.m_seed) { + opg_log->add_divergent_prior(i->first, i->second); + divergent_priors.erase(i++); + dirty_divergent_priors = true; + } else { + ++i; + } + } } void recover_got(hobject_t oid, eversion_t v, pg_info_t &info) { -- 2.47.3