diff mbox

[2/2] vhdx: Fix zero-fill iov length

Message ID 1429090046-6359-3-git-send-email-kwolf@redhat.com
State New
Headers show

Commit Message

Kevin Wolf April 15, 2015, 9:27 a.m. UTC
Fix the length of the zero-fill for the back, which was accidentally
using the same value as for the front. This is caught by qemu-iotests
033.

For consistency, change the code for the front as well to use the length
stored in the iov (it is the same value, copied four lines above).

Signed-off-by: Kevin Wolf <kwolf@redhat.com>
---
 block/vhdx.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

Comments

Jeff Cody April 15, 2015, 11:32 a.m. UTC | #1
On Wed, Apr 15, 2015 at 11:27:26AM +0200, Kevin Wolf wrote:
> Fix the length of the zero-fill for the back, which was accidentally
> using the same value as for the front. This is caught by qemu-iotests
> 033.
> 
> For consistency, change the code for the front as well to use the length
> stored in the iov (it is the same value, copied four lines above).
> 
> Signed-off-by: Kevin Wolf <kwolf@redhat.com>
> ---
>  block/vhdx.c | 4 ++--
>  1 file changed, 2 insertions(+), 2 deletions(-)
> 
> diff --git a/block/vhdx.c b/block/vhdx.c
> index bb3ed45..e24062f 100644
> --- a/block/vhdx.c
> +++ b/block/vhdx.c
> @@ -1269,7 +1269,7 @@ static coroutine_fn int vhdx_co_writev(BlockDriverState *bs, int64_t sector_num,
>                          iov1.iov_base = qemu_blockalign(bs, iov1.iov_len);
>                          memset(iov1.iov_base, 0, iov1.iov_len);
>                          qemu_iovec_concat_iov(&hd_qiov, &iov1, 1, 0,
> -                                              sinfo.block_offset);
> +                                              iov1.iov_len);

Better form here, although should be identical

>                          sectors_to_write += iov1.iov_len >> BDRV_SECTOR_BITS;
>                      }
>  
> @@ -1285,7 +1285,7 @@ static coroutine_fn int vhdx_co_writev(BlockDriverState *bs, int64_t sector_num,
>                          iov2.iov_base = qemu_blockalign(bs, iov2.iov_len);
>                          memset(iov2.iov_base, 0, iov2.iov_len);
>                          qemu_iovec_concat_iov(&hd_qiov, &iov2, 1, 0,
> -                                              sinfo.block_offset);
> +                                              iov2.iov_len);

Definite bug fix here

>                          sectors_to_write += iov2.iov_len >> BDRV_SECTOR_BITS;
>                      }
>                  }
> -- 
> 1.8.3.1
>

Acked-by: Jeff Cody <jcody@redhat.com>
diff mbox

Patch

diff --git a/block/vhdx.c b/block/vhdx.c
index bb3ed45..e24062f 100644
--- a/block/vhdx.c
+++ b/block/vhdx.c
@@ -1269,7 +1269,7 @@  static coroutine_fn int vhdx_co_writev(BlockDriverState *bs, int64_t sector_num,
                         iov1.iov_base = qemu_blockalign(bs, iov1.iov_len);
                         memset(iov1.iov_base, 0, iov1.iov_len);
                         qemu_iovec_concat_iov(&hd_qiov, &iov1, 1, 0,
-                                              sinfo.block_offset);
+                                              iov1.iov_len);
                         sectors_to_write += iov1.iov_len >> BDRV_SECTOR_BITS;
                     }
 
@@ -1285,7 +1285,7 @@  static coroutine_fn int vhdx_co_writev(BlockDriverState *bs, int64_t sector_num,
                         iov2.iov_base = qemu_blockalign(bs, iov2.iov_len);
                         memset(iov2.iov_base, 0, iov2.iov_len);
                         qemu_iovec_concat_iov(&hd_qiov, &iov2, 1, 0,
-                                              sinfo.block_offset);
+                                              iov2.iov_len);
                         sectors_to_write += iov2.iov_len >> BDRV_SECTOR_BITS;
                     }
                 }