]> git-server-git.apps.pok.os.sepia.ceph.com Git - ceph.git/commitdiff
Librbd: Make AioCompletion complete doesn't unlock if callback
authorHaomai Wang <haomai@xsky.com>
Sat, 7 Nov 2015 07:55:47 +0000 (15:55 +0800)
committerHaomai Wang <haomai@xsky.com>
Tue, 1 Dec 2015 02:03:31 +0000 (10:03 +0800)
Signed-off-by: Haomai Wang <haomai@xsky.com>
src/librbd/AioCompletion.cc

index 2c58046a95474599868dd73319f25628de2b4054..232fc1f4d9c53f8c706da3a9513c507d782d1244 100644 (file)
@@ -98,12 +98,12 @@ namespace librbd {
       async_op.finish_op();
     }
 
-    lock.Unlock();
     if (complete_cb) {
+      lock.Unlock();
       complete_cb(rbd_comp, complete_arg);
+      lock.Lock();
     }
 
-    lock.Lock();
     done = true;
     if (ictx && event_notify && ictx->event_socket.is_valid()) {
       ictx->completed_reqs_lock.Lock();