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



Reply via email to