From: Jason Dillaman Date: Thu, 30 Apr 2015 17:42:19 +0000 (-0400) Subject: librbd: AioCompletion shouldn't hold its lock during callback X-Git-Tag: v0.94.4~77^2~19 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=b38da48059792e9182fe2877786d9159007683d3;p=ceph.git librbd: AioCompletion shouldn't hold its lock during callback The callback routine most likely will attempt to retrieve the result code, which will result in a recursive lock attempt. Signed-off-by: Jason Dillaman (cherry picked from commit 3ad19ae349ebb27ff6027e40883735240fa97a3c) --- diff --git a/src/librbd/AioCompletion.cc b/src/librbd/AioCompletion.cc index d126efd040a7..6222531bedac 100644 --- a/src/librbd/AioCompletion.cc +++ b/src/librbd/AioCompletion.cc @@ -90,7 +90,9 @@ namespace librbd { } if (complete_cb) { + lock.Unlock(); complete_cb(rbd_comp, complete_arg); + lock.Lock(); } done = true; cond.Signal();