From: Haomai Wang Date: Sun, 4 May 2014 04:45:58 +0000 (+0800) Subject: Use submit_transaction_sync to make change durable X-Git-Tag: v0.84~111^2~1 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=ef117fef698cf5e3c3b7630ddd3879d2b31e29a7;p=ceph.git Use submit_transaction_sync to make change durable 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 --- diff --git a/src/os/GenericObjectMap.h b/src/os/GenericObjectMap.h index 3c5e3cb9856..4a0c99c94b9 100644 --- a/src/os/GenericObjectMap.h +++ b/src/os/GenericObjectMap.h @@ -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 { diff --git a/src/os/KeyValueStore.cc b/src/os/KeyValueStore.cc index 1a442b6d42e..69691a6197d 100644 --- a/src/os/KeyValueStore.cc +++ b/src/os/KeyValueStore.cc @@ -425,7 +425,7 @@ int KeyValueStore::BufferTransaction::submit_transaction() } } - r = store->backend->submit_transaction(t); + r = store->backend->submit_transaction_sync(t); for (list::iterator it = finishes.begin(); it != finishes.end(); ++it) { (*it)->complete(r); }