On 12/17/2012 11:43 AM, MORITA Kazutaka wrote: > send_pending_req() needs to be called even in error case. Rather than > moving the error check, I think it looks better to update > s->inode.data_vdi_id only when rsp.result is SD_RES_SUCCESS.
Why can't we check the rsp.result in the first place? double check rsp.result inside one function looks a little bit complicated to me. How about + if (rsp.result != SD_RES_SUCCESS) { + acb->ret = -EIO; + error_report("%s", sd_strerror(rsp.result)); + send_pending_req(s, aio_req->oid); + goto err; + + } By the way, seems that send_pending_req(s, vid_to_data_oid(s->inode.vdi_id, idx)); can be reduced to send_pending_req(s, aio_req->oid); If yes, I can send another patch to fix. Thanks, Yuan