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: v9.0.2~46^2~11 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=3ad19ae349ebb27ff6027e40883735240fa97a3c;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 --- diff --git a/src/librbd/AioCompletion.cc b/src/librbd/AioCompletion.cc index 40dbc0aa0813..ec7f6846ffb4 100644 --- a/src/librbd/AioCompletion.cc +++ b/src/librbd/AioCompletion.cc @@ -89,7 +89,9 @@ namespace librbd { } if (complete_cb) { + lock.Unlock(); complete_cb(rbd_comp, complete_arg); + lock.Lock(); } done = true; cond.Signal();