diff options
author | Sage Weil <sage@inktank.com> | 2013-08-20 11:27:09 -0700 |
---|---|---|
committer | Sage Weil <sage@inktank.com> | 2013-08-20 11:27:09 -0700 |
commit | 7e0848d8f88f156a05eef47a9f730b772b64fbf2 (patch) | |
tree | fabc8bfc2ec6bea26ab6d69239bb5bc4f31789c9 | |
parent | b9dee2285d9fe8533fa98c940d5af7b0b81f3d33 (diff) | |
download | ceph-7e0848d8f88f156a05eef47a9f730b772b64fbf2.tar.gz |
mon/Paxos: return whether store_state stored anything
Signed-off-by: Sage Weil <sage@inktank.com>
Reviewed-by: Joao Eduardo Luis <joao.luis@inktank.com>
-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 0fcd3b13903..09b3391e182 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. @@ -341,9 +342,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(); /** |