]> git.apps.os.sepia.ceph.com Git - ceph.git/commitdiff
Use submit_transaction_sync to make change durable
authorHaomai Wang <haomaiwang@gmail.com>
Sun, 4 May 2014 04:45:58 +0000 (12:45 +0800)
committerHaomai Wang <haomaiwang@gmail.com>
Wed, 9 Jul 2014 02:53:10 +0000 (10:53 +0800)
submit_transaction will use asynchronous write operation, there is no journal
for keyvaluestore so we need to make it sync

Signed-off-by: Haomai Wang <haomaiwang@gmail.com>
src/os/GenericObjectMap.h
src/os/KeyValueStore.cc

index 3c5e3cb9856f99edb703525877b5bf7a40c25c2d..4a0c99c94b911ce052dc60eaae0871f9ec6976d6 100644 (file)
@@ -129,6 +129,9 @@ class GenericObjectMap {
   int submit_transaction(KeyValueDB::Transaction t) {
     return db->submit_transaction(t);
   }
+  int submit_transaction_sync(KeyValueDB::Transaction t) {
+    return db->submit_transaction_sync(t);
+  }
 
   /// persistent state for store @see generate_header
   struct State {
index 1a442b6d42e60ae3f4cf92a78e631dcf4b01ec3c..69691a6197d96010db26d8739fd3f545e78970eb 100644 (file)
@@ -425,7 +425,7 @@ int KeyValueStore::BufferTransaction::submit_transaction()
     }
   }
 
-  r = store->backend->submit_transaction(t);
+  r = store->backend->submit_transaction_sync(t);
   for (list<Context*>::iterator it = finishes.begin(); it != finishes.end(); ++it) {
     (*it)->complete(r);
   }