diff options
-rw-r--r-- | src/mon/Paxos.cc | 6 | ||||
-rw-r--r-- | src/mon/Paxos.h | 3 |
2 files changed, 7 insertions, 2 deletions
diff --git a/src/mon/Paxos.cc b/src/mon/Paxos.cc index 9c7e50b0c5f..adb497b9d49 100644 --- a/src/mon/Paxos.cc +++ b/src/mon/Paxos.cc @@ -282,10 +282,11 @@ void Paxos::share_state(MMonPaxos *m, version_t peer_first_committed, * be. All all this is done tightly wrapped in a transaction to ensure we * enjoy the atomicity guarantees given by our awesome k/v store. */ -void Paxos::store_state(MMonPaxos *m) +bool Paxos::store_state(MMonPaxos *m) { MonitorDBStore::Transaction t; map<version_t,bufferlist>::iterator start = m->values.begin(); + bool changed = false; // build map of values to store // we want to write the range [last_committed, m->last_committed] only. @@ -350,9 +351,12 @@ void Paxos::store_state(MMonPaxos *m) first_committed = get_store()->get(get_name(), "first_committed"); _sanity_check_store(); + changed = true; } remove_legacy_versions(); + + return changed; } void Paxos::remove_legacy_versions() diff --git a/src/mon/Paxos.h b/src/mon/Paxos.h index 69419e64ab9..1bd3a3c1f51 100644 --- a/src/mon/Paxos.h +++ b/src/mon/Paxos.h @@ -1095,8 +1095,9 @@ public: * enjoy the atomicity guarantees given by our awesome k/v store. * * @param m A message + * @returns true if we stored something new; false otherwise */ - void store_state(MMonPaxos *m); + bool store_state(MMonPaxos *m); void _sanity_check_store(); /** |