aboutsummaryrefslogtreecommitdiff
path: root/block
diff options
context:
space:
mode:
authorSwapnil Ingle <swapnil.ingle@nutanix.com>2020-08-07 10:03:23 +0000
committerMax Reitz <mreitz@redhat.com>2020-09-15 11:05:13 +0200
commit83a6a90009401f02bdb18fd2414dbae090d0f2b5 (patch)
tree6188a8f22ca5c0c3eb530ad949b8acf72daac995 /block
parent33fe08fcaf3773e2151bb60b4f9c62159a0c6633 (diff)
downloadqemu-83a6a90009401f02bdb18fd2414dbae090d0f2b5.zip
qemu-83a6a90009401f02bdb18fd2414dbae090d0f2b5.tar.gz
qemu-83a6a90009401f02bdb18fd2414dbae090d0f2b5.tar.bz2
block/vhdx: Support vhdx image only with 512 bytes logical sector size
block/vhdx uses qemu block layer where sector size is always 512 bytes. This may have issues with 4K logical sector sized vhdx image. For e.g qemu-img convert on such images fails with following assert: $qemu-img convert -f vhdx -O raw 4KTest1.vhdx test.raw qemu-img: util/iov.c:388: qiov_slice: Assertion `offset + len <= qiov->size' failed. Aborted This patch adds an check to return ENOTSUP for vhdx images which have logical sector size other than 512 bytes. Signed-off-by: Swapnil Ingle <swapnil.ingle@nutanix.com> Message-Id: <1596794594-44531-1-git-send-email-swapnil.ingle@nutanix.com> Signed-off-by: Max Reitz <mreitz@redhat.com>
Diffstat (limited to 'block')
-rw-r--r--block/vhdx.c6
1 files changed, 3 insertions, 3 deletions
diff --git a/block/vhdx.c b/block/vhdx.c
index 791eb90..356ec4c 100644
--- a/block/vhdx.c
+++ b/block/vhdx.c
@@ -816,9 +816,9 @@ static int vhdx_parse_metadata(BlockDriverState *bs, BDRVVHDXState *s)
goto exit;
}
- /* only 2 supported sector sizes */
- if (s->logical_sector_size != 512 && s->logical_sector_size != 4096) {
- ret = -EINVAL;
+ /* Currently we only support 512 */
+ if (s->logical_sector_size != 512) {
+ ret = -ENOTSUP;
goto exit;
}