From 6ab172362598e8a815dbc7a1d0e5df565420d50d Mon Sep 17 00:00:00 2001 From: Sage Weil Date: Mon, 29 Nov 2010 16:38:55 -0800 Subject: [PATCH] filestore: simplify apply_transactions Always use queue_transactions, even in no-journal case. Signed-off-by: Sage Weil --- src/os/FileStore.cc | 44 ++++++++++++++------------------------------ 1 file changed, 14 insertions(+), 30 deletions(-) diff --git a/src/os/FileStore.cc b/src/os/FileStore.cc index b988555356a53..09c8cae5f47e3 100644 --- a/src/os/FileStore.cc +++ b/src/os/FileStore.cc @@ -1502,37 +1502,21 @@ unsigned FileStore::apply_transaction(Transaction &t, unsigned FileStore::apply_transactions(list &tls, Context *ondisk) { + // use op pool + Cond my_cond; + Mutex my_lock("FileStore::apply_transaction::my_lock"); int r = 0; - - if (journal && journal->is_writeable() && - (g_conf.filestore_journal_parallel || g_conf.filestore_journal_writeahead)) { - // use op pool - Cond my_cond; - Mutex my_lock("FileStore::apply_transaction::my_lock"); - bool done; - C_SafeCond *onreadable = new C_SafeCond(&my_lock, &my_cond, &done, &r); - - dout(10) << "apply queued" << dendl; - queue_transactions(NULL, tls, onreadable, ondisk); - - my_lock.Lock(); - while (!done) - my_cond.Wait(my_lock); - my_lock.Unlock(); - dout(10) << "apply done r = " << r << dendl; - } else { - uint64_t op_seq = op_apply_start(0); - r = do_transactions(tls, op_seq); - op_apply_finish(op_seq); - - if (r >= 0) { - op_journal_start(op_seq); - journal_transactions(tls, op_seq, ondisk); - op_journal_finish(); - } else { - delete ondisk; - } - } + bool done; + C_SafeCond *onreadable = new C_SafeCond(&my_lock, &my_cond, &done, &r); + + dout(10) << "apply queued" << dendl; + queue_transactions(NULL, tls, onreadable, ondisk); + + my_lock.Lock(); + while (!done) + my_cond.Wait(my_lock); + my_lock.Unlock(); + dout(10) << "apply done r = " << r << dendl; return r; } -- 2.39.5