librbd: avoid infinite loop if copyup fails

Signed-off-by: Jason Dillaman <dillaman@redhat.com>
This commit is contained in:
Jason Dillaman 2015-05-21 00:13:31 -04:00
parent cd0fd833ad
commit 43e0e3cd63

View File

@ -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: