]> git.apps.os.sepia.ceph.com Git - ceph.git/commitdiff
rbd-replay: Bugfix: ensure PendingIOs are added before they're removed
authorAdam Crume <adamcrume@gmail.com>
Fri, 18 Jul 2014 19:16:59 +0000 (12:16 -0700)
committerSage Weil <sage@redhat.com>
Thu, 21 Aug 2014 17:57:29 +0000 (10:57 -0700)
Signed-off-by: Adam Crume <adamcrume@gmail.com>
src/rbd_replay/actions.cc

index 26c7e64e7d3373909fb089d1208cf023847bf913..9070c91b1bffdf24b917f3bfa5da598b76621c41 100644 (file)
@@ -131,8 +131,8 @@ void AioReadAction::perform(ActionCtx &worker) {
   librbd::Image *image = worker.get_image(m_imagectx_id);
   assert(image);
   PendingIO::ptr io(new PendingIO(pending_io_id(), worker));
-  image->aio_read(m_offset, m_length, io->bufferlist(), &io->completion());
   worker.add_pending(io);
+  image->aio_read(m_offset, m_length, io->bufferlist(), &io->completion());
 }
 
 
@@ -185,8 +185,8 @@ void AioWriteAction::perform(ActionCtx &worker) {
   librbd::Image *image = worker.get_image(m_imagectx_id);
   PendingIO::ptr io(new PendingIO(pending_io_id(), worker));
   io->bufferlist().append_zero(m_length);
-  image->aio_write(m_offset, m_length, io->bufferlist(), &io->completion());
   worker.add_pending(io);
+  image->aio_write(m_offset, m_length, io->bufferlist(), &io->completion());
 }