[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-devel] [PATCH] vmdk: align end of file to a sector boundary
From: |
yuchenlin |
Subject: |
Re: [Qemu-devel] [PATCH] vmdk: align end of file to a sector boundary |
Date: |
Wed, 5 Sep 2018 10:14:53 +0800 |
Ping!
address@hidden 於 2018-08-28 11:18 寫道:
> From: yuchenlin <address@hidden> There is a rare case which the size of last
> compressed cluster is larger than the cluster size, which will cause the file
> is not aligned at the sector boundary. Signed-off-by: yuchenlin
> <address@hidden> --- block/vmdk.c | 18 ++++++++++++++++++ 1 file changed, 18
> insertions(+) diff --git a/block/vmdk.c b/block/vmdk.c index
> a9d0084e36..a8ae7c65d2 100644 --- a/block/vmdk.c +++ b/block/vmdk.c @@
> -1698,6 +1698,24 @@ static int coroutine_fn
> vmdk_co_pwritev_compressed(BlockDriverState *bs, uint64_t offset, uint64_t
> bytes, QEMUIOVector *qiov) { + if (bytes == 0) { + /* align end of file to a
> sector boundary. */ + BDRVVmdkState *s = bs->opaque; + int i, ret; + int64_t
> length; + + for (i = 0; i < s->num_extents; i++) { + length =
> bdrv_getlength(s->extents[i].file->bs); + if (length < 0) { + return length;
> + } + ret = bdrv_truncate(s->extents[i].file, length, PREALLOC_MODE_OFF,
> NULL); + if (ret < 0) { + return ret; + } + } + return 0; + } return
> vmdk_co_pwritev(bs, offset, bytes, qiov, 0); } -- 2.17.0
- Re: [Qemu-devel] [PATCH] vmdk: align end of file to a sector boundary,
yuchenlin <=