A inner scope "ret" variable hides the real return code, it will always return VMDK_OK for bs->backing_hd. Fix this by removing the declaration.
Signed-off-by: Fam Zheng <f...@redhat.com> --- block/vmdk.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/block/vmdk.c b/block/vmdk.c index 3756333..f42657b 100644 --- a/block/vmdk.c +++ b/block/vmdk.c @@ -813,8 +813,8 @@ static int get_whole_cluster(BlockDriverState *bs, /* we will be here if it's first write on non-exist grain(cluster). * try to read from parent image, if exist */ if (bs->backing_hd) { - int ret; - + whole_grain = + qemu_blockalign(bs, extent->cluster_sectors << BDRV_SECTOR_BITS); if (!vmdk_is_cid_valid(bs)) { return VMDK_ERROR; } -- 1.8.3.4