Lines Matching refs:aio_req

463     AIOReq *aio_req;  in alloc_aio_req()  local
465 aio_req = g_malloc(sizeof(*aio_req)); in alloc_aio_req()
466 aio_req->aiocb = acb; in alloc_aio_req()
467 aio_req->iov_offset = iov_offset; in alloc_aio_req()
468 aio_req->oid = oid; in alloc_aio_req()
469 aio_req->base_oid = base_oid; in alloc_aio_req()
470 aio_req->offset = offset; in alloc_aio_req()
471 aio_req->data_len = data_len; in alloc_aio_req()
472 aio_req->flags = flags; in alloc_aio_req()
473 aio_req->id = s->aioreq_seq_num++; in alloc_aio_req()
474 aio_req->create = create; in alloc_aio_req()
477 return aio_req; in alloc_aio_req()
716 static void coroutine_fn add_aio_request(BDRVSheepdogState *s, AIOReq *aio_req,
719 static void coroutine_fn resend_aioreq(BDRVSheepdogState *s, AIOReq *aio_req);
727 AIOReq *aio_req, *next; in reconnect_to_sdog() local
758 QLIST_FOREACH_SAFE(aio_req, &s->inflight_aio_head, aio_siblings, next) { in reconnect_to_sdog()
759 QLIST_REMOVE(aio_req, aio_siblings); in reconnect_to_sdog()
760 QLIST_INSERT_HEAD(&s->failed_aio_head, aio_req, aio_siblings); in reconnect_to_sdog()
765 aio_req = QLIST_FIRST(&s->failed_aio_head); in reconnect_to_sdog()
766 QLIST_REMOVE(aio_req, aio_siblings); in reconnect_to_sdog()
768 resend_aioreq(s, aio_req); in reconnect_to_sdog()
786 AIOReq *aio_req = NULL; in aio_read_response() local
798 QLIST_FOREACH(aio_req, &s->inflight_aio_head, aio_siblings) { in aio_read_response()
799 if (aio_req->id == rsp.id) { in aio_read_response()
803 if (!aio_req) { in aio_read_response()
808 acb = aio_req->aiocb; in aio_read_response()
812 if (!is_data_obj(aio_req->oid)) { in aio_read_response()
815 idx = data_oid_to_idx(aio_req->oid); in aio_read_response()
817 if (aio_req->create) { in aio_read_response()
833 aio_req->iov_offset, rsp.data_length); in aio_read_response()
864 QLIST_REMOVE(aio_req, aio_siblings); in aio_read_response()
871 if (s->inode.vdi_id == oid_to_vid(aio_req->oid)) { in aio_read_response()
877 if (is_data_obj(aio_req->oid)) { in aio_read_response()
878 aio_req->oid = vid_to_data_oid(s->inode.vdi_id, in aio_read_response()
879 data_oid_to_idx(aio_req->oid)); in aio_read_response()
881 aio_req->oid = vid_to_vdi_oid(s->inode.vdi_id); in aio_read_response()
883 resend_aioreq(s, aio_req); in aio_read_response()
891 g_free(aio_req); in aio_read_response()
1271 static void coroutine_fn add_aio_request(BDRVSheepdogState *s, AIOReq *aio_req, in add_aio_request() argument
1279 uint64_t oid = aio_req->oid; in add_aio_request()
1280 unsigned int datalen = aio_req->data_len; in add_aio_request()
1281 uint64_t offset = aio_req->offset; in add_aio_request()
1282 uint8_t flags = aio_req->flags; in add_aio_request()
1283 uint64_t old_oid = aio_req->base_oid; in add_aio_request()
1284 bool create = aio_req->create; in add_aio_request()
1287 QLIST_INSERT_HEAD(&s->inflight_aio_head, aio_req, aio_siblings); in add_aio_request()
1335 hdr.id = aio_req->id; in add_aio_request()
1351 ret = qemu_co_sendv(s->fd, iov, niov, aio_req->iov_offset, wlen); in add_aio_request()
1473 static void coroutine_fn resend_aioreq(BDRVSheepdogState *s, AIOReq *aio_req) in resend_aioreq() argument
1475 SheepdogAIOCB *acb = aio_req->aiocb; in resend_aioreq()
1477 aio_req->create = false; in resend_aioreq()
1480 if (acb->aiocb_type == AIOCB_WRITE_UDATA && is_data_obj(aio_req->oid)) { in resend_aioreq()
1481 int idx = data_oid_to_idx(aio_req->oid); in resend_aioreq()
1488 aio_req->base_oid = vid_to_data_oid(s->inode.data_vdi_id[idx], idx); in resend_aioreq()
1489 aio_req->flags |= SD_FLAG_CMD_COW; in resend_aioreq()
1491 aio_req->create = true; in resend_aioreq()
1494 if (is_data_obj(aio_req->oid)) { in resend_aioreq()
1495 add_aio_request(s, aio_req, acb->qiov->iov, acb->qiov->niov, in resend_aioreq()
1501 add_aio_request(s, aio_req, &iov, 1, AIOCB_WRITE_UDATA); in resend_aioreq()
2348 AIOReq *aio_req; in sd_write_done() local
2365 aio_req = alloc_aio_req(s, acb, vid_to_vdi_oid(s->inode.vdi_id), in sd_write_done()
2367 add_aio_request(s, aio_req, &iov, 1, AIOCB_WRITE_UDATA); in sd_write_done()
2493 AIOReq *aio_req; in sd_co_rw_vector() local
2564 aio_req = alloc_aio_req(s, acb, oid, len, offset, flags, create, in sd_co_rw_vector()
2568 add_aio_request(s, aio_req, acb->qiov->iov, acb->qiov->niov, in sd_co_rw_vector()
2636 AIOReq *aio_req; in sd_co_flush_to_disk() local
2645 aio_req = alloc_aio_req(s, &acb, vid_to_vdi_oid(s->inode.vdi_id), in sd_co_flush_to_disk()
2647 add_aio_request(s, aio_req, NULL, 0, acb.aiocb_type); in sd_co_flush_to_disk()