From: Jason Dillaman Date: Thu, 21 May 2015 04:13:31 +0000 (-0400) Subject: librbd: avoid infinite loop if copyup fails X-Git-Tag: v0.94.4~77^2~2 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=5b39983025f510c3119ebb375870e7669be7ddd0;p=ceph.git librbd: avoid infinite loop if copyup fails Signed-off-by: Jason Dillaman (cherry picked from commit 43e0e3cd63f0067217ed0811d73f6c546f3027be) --- diff --git a/src/librbd/AioRequest.cc b/src/librbd/AioRequest.cc index b6c4a7f265f2..7dbec4a61606 100644 --- a/src/librbd/AioRequest.cc +++ b/src/librbd/AioRequest.cc @@ -355,12 +355,13 @@ namespace librbd { case LIBRBD_AIO_WRITE_COPYUP: ldout(m_ictx->cct, 20) << "WRITE_COPYUP" << dendl; - m_state = LIBRBD_AIO_WRITE_GUARD; if (r < 0) { - return should_complete(r); + m_state = LIBRBD_AIO_WRITE_ERROR; + complete(r); + finished = false; + } else { + finished = send_post(); } - - finished = send_post(); break; case LIBRBD_AIO_WRITE_FLAT: