]> git-server-git.apps.pok.os.sepia.ceph.com Git - ceph.git/commitdiff
os/filestore: move ondisk in front, so that return oncommit earlier, and improve... 13918/head
authorPan Liu <pan.liu@istuary.com>
Fri, 10 Mar 2017 15:05:33 +0000 (23:05 +0800)
committerPan Liu <pan.liu@istuary.com>
Fri, 10 Mar 2017 15:05:33 +0000 (23:05 +0800)
Signed-off-by: Pan Liu <liupan1111@gmail.com>
src/os/filestore/FileStore.cc

index 40fe2f99bea938eb861df616e94b0460b27db225..2ce58f5a53ba85e583d6725c1f1a64a1f99b1d23 100644 (file)
@@ -2215,18 +2215,19 @@ void FileStore::_journaled_ahead(OpSequencer *osr, Op *o, Context *ondisk)
 {
   dout(5) << "_journaled_ahead " << o << " seq " << o->op << " " << *osr << " " << o->tls << dendl;
 
-  // this should queue in order because the journal does it's completions in order.
-  queue_op(osr, o);
-
-  list<Context*> to_queue;
-  osr->dequeue_journal(&to_queue);
-
   // do ondisk completions async, to prevent any onreadable_sync completions
   // getting blocked behind an ondisk completion.
   if (ondisk) {
     dout(10) << " queueing ondisk " << ondisk << dendl;
     ondisk_finishers[osr->id % m_ondisk_finisher_num]->queue(ondisk);
   }
+
+  // this should queue in order because the journal does it's completions in order.
+  queue_op(osr, o);
+
+  list<Context*> to_queue;
+  osr->dequeue_journal(&to_queue);
+
   if (!to_queue.empty()) {
     ondisk_finishers[osr->id % m_ondisk_finisher_num]->queue(to_queue);
   }