From: Gonglei <arei.gong...@huawei.com> Signed-off-by: Gonglei <arei.gong...@huawei.com> --- hw/block/virtio-blk.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-)
diff --git a/hw/block/virtio-blk.c b/hw/block/virtio-blk.c index 093e475..752586d 100644 --- a/hw/block/virtio-blk.c +++ b/hw/block/virtio-blk.c @@ -409,18 +409,20 @@ void virtio_blk_submit_multireq(BlockBackend *blk, MultiReqBuffer *mrb) /* merge would exceed maximum number of IOVs */ if (niov + req->qiov.niov > IOV_MAX) { merge = false; + goto unmerge; } /* merge would exceed maximum transfer length of backend device */ if (req->qiov.size / BDRV_SECTOR_SIZE + nb_sectors > max_xfer_len) { merge = false; + goto unmerge; } /* requests are not sequential */ if (sector_num + nb_sectors != req->sector_num) { merge = false; } - +unmerge: if (!merge) { submit_requests(blk, mrb, start, num_reqs, niov); num_reqs = 0; -- 1.7.12.4