Home | History | Annotate | Download | only in qemu

Lines Matching refs:reqs

2097 static int multiwrite_merge(BlockDriverState *bs, BlockRequest *reqs,
2103 qsort(reqs, num_reqs, sizeof(*reqs), &multiwrite_req_compare);
2110 int64_t oldreq_last = reqs[outidx].sector + reqs[outidx].nb_sectors;
2114 if (reqs[i].sector <= oldreq_last) {
2123 merge = bs->drv->bdrv_merge_requests(bs, &reqs[outidx], &reqs[i]);
2126 if (reqs[outidx].qiov->niov + reqs[i].qiov->niov + 1 > IOV_MAX) {
2134 reqs[outidx].qiov->niov + reqs[i].qiov->niov + 1);
2138 size = (reqs[i].sector - reqs[outidx].sector) << 9;
2139 qemu_iovec_concat(qiov, reqs[outidx].qiov, size);
2142 if (reqs[i].sector > oldreq_last) {
2143 size_t zero_bytes = (reqs[i].sector - oldreq_last) << 9;
2151 qemu_iovec_concat(qiov, reqs[i].qiov, reqs[i].qiov->size);
2153 reqs[outidx].nb_sectors = qiov->size >> 9;
2154 reqs[outidx].qiov = qiov;
2156 mcb->callbacks[i].free_qiov = reqs[outidx].qiov;
2159 reqs[outidx].sector = reqs[i].sector;
2160 reqs[outidx].nb_sectors = reqs[i].nb_sectors;
2161 reqs[outidx].qiov = reqs[i].qiov;
2171 * On success, the function returns 0 and all requests in the reqs array have
2178 * The implementation may modify the contents of the reqs array, e.g. to merge
2182 int bdrv_aio_multiwrite(BlockDriverState *bs, BlockRequest *reqs, int num_reqs)
2198 mcb->callbacks[i].cb = reqs[i].cb;
2199 mcb->callbacks[i].opaque = reqs[i].opaque;
2203 num_reqs = multiwrite_merge(bs, reqs, num_reqs, mcb);
2228 acb = bdrv_aio_writev(bs, reqs[i].sector, reqs[i].qiov,
2229 reqs[i].nb_sectors, multiwrite_cb, mcb);
2251 reqs[i].error = -EIO;