9ae3a8
From a7cfda7b304697450f0a55c22f4459b25999e9c5 Mon Sep 17 00:00:00 2001
9ae3a8
From: Max Reitz <mreitz@redhat.com>
9ae3a8
Date: Mon, 13 Mar 2017 17:47:05 +0100
9ae3a8
Subject: [PATCH 17/24] vhdx: Fix zero-fill iov length
9ae3a8
9ae3a8
RH-Author: Max Reitz <mreitz@redhat.com>
9ae3a8
Message-id: <20170313174706.29316-2-mreitz@redhat.com>
9ae3a8
Patchwork-id: 74279
9ae3a8
O-Subject: [RHEL-7.4 qemu-kvm PATCH 8/9] vhdx: Fix zero-fill iov length
9ae3a8
Bugzilla: 1427176
9ae3a8
RH-Acked-by: Fam Zheng <famz@redhat.com>
9ae3a8
RH-Acked-by: Stefan Hajnoczi <stefanha@redhat.com>
9ae3a8
RH-Acked-by: Kevin Wolf <kwolf@redhat.com>
9ae3a8
9ae3a8
From: Kevin Wolf <kwolf@redhat.com>
9ae3a8
9ae3a8
Fix the length of the zero-fill for the back, which was accidentally
9ae3a8
using the same value as for the front. This is caught by qemu-iotests
9ae3a8
033.
9ae3a8
9ae3a8
For consistency, change the code for the front as well to use the length
9ae3a8
stored in the iov (it is the same value, copied four lines above).
9ae3a8
9ae3a8
Signed-off-by: Kevin Wolf <kwolf@redhat.com>
9ae3a8
Acked-by: Jeff Cody <jcody@redhat.com>
9ae3a8
(cherry picked from commit d1a126c53ddc563b7b731cee013e0362f7a5f22f)
9ae3a8
Signed-off-by: Max Reitz <mreitz@redhat.com>
9ae3a8
Signed-off-by: Miroslav Rezanina <mrezanin@redhat.com>
9ae3a8
---
9ae3a8
 block/vhdx.c | 4 ++--
9ae3a8
 1 file changed, 2 insertions(+), 2 deletions(-)
9ae3a8
9ae3a8
diff --git a/block/vhdx.c b/block/vhdx.c
9ae3a8
index 21ad6ad..47a872d 100644
9ae3a8
--- a/block/vhdx.c
9ae3a8
+++ b/block/vhdx.c
9ae3a8
@@ -1247,7 +1247,7 @@ static coroutine_fn int vhdx_co_writev(BlockDriverState *bs, int64_t sector_num,
9ae3a8
                         iov1.iov_base = qemu_blockalign(bs, iov1.iov_len);
9ae3a8
                         memset(iov1.iov_base, 0, iov1.iov_len);
9ae3a8
                         qemu_iovec_concat_iov(&hd_qiov, &iov1, 1, 0,
9ae3a8
-                                              sinfo.block_offset);
9ae3a8
+                                              iov1.iov_len);
9ae3a8
                         sectors_to_write += iov1.iov_len >> BDRV_SECTOR_BITS;
9ae3a8
                     }
9ae3a8
 
9ae3a8
@@ -1263,7 +1263,7 @@ static coroutine_fn int vhdx_co_writev(BlockDriverState *bs, int64_t sector_num,
9ae3a8
                         iov2.iov_base = qemu_blockalign(bs, iov2.iov_len);
9ae3a8
                         memset(iov2.iov_base, 0, iov2.iov_len);
9ae3a8
                         qemu_iovec_concat_iov(&hd_qiov, &iov2, 1, 0,
9ae3a8
-                                              sinfo.block_offset);
9ae3a8
+                                              iov2.iov_len);
9ae3a8
                         sectors_to_write += iov2.iov_len >> BDRV_SECTOR_BITS;
9ae3a8
                     }
9ae3a8
                 }
9ae3a8
-- 
9ae3a8
1.8.3.1
9ae3a8