]> git.apps.os.sepia.ceph.com Git - ceph.git/commitdiff
Revert "PaxosService: use get and put for version_t"
authorSage Weil <sage@inktank.com>
Wed, 1 May 2013 05:48:52 +0000 (22:48 -0700)
committerSage Weil <sage@inktank.com>
Wed, 1 May 2013 18:05:02 +0000 (11:05 -0700)
This reverts commit e725c3e210b244e090d70c77d937c94f4f63a2be.

These inadvertantely got rid of the prefix portion of the key, which
lead to overwriting the wrong keys.

Fixes: #4872
Signed-off-by: Sage Weil <sage@inktank.com>
Reviewed-by: Samuel Just <sam.just@inktank.com>
src/mon/PaxosService.cc

index 647980a9342c229d1bb255513f795f926d9db20f..8f421ab3d81875bb7628cae78fda33b8e00403c4 100644 (file)
@@ -294,13 +294,19 @@ void PaxosService::put_version(MonitorDBStore::Transaction *t,
                               const string& prefix, version_t ver,
                               bufferlist& bl)
 {
-  t->put(get_service_name(), ver, bl);
+  ostringstream os;
+  os << ver;
+  string key = mon->store->combine_strings(prefix, os.str());
+  t->put(get_service_name(), key, bl);
 }
 
 int PaxosService::get_version(const string& prefix, version_t ver,
                              bufferlist& bl)
 {
-  return mon->store->get(get_service_name(), ver, bl);
+  ostringstream os;
+  os << ver;
+  string key = mon->store->combine_strings(prefix, os.str());
+  return mon->store->get(get_service_name(), key, bl);
 }
 
 void PaxosService::trim(MonitorDBStore::Transaction *t,