qemu-devel
[Top][All Lists]
Advanced

[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   




reply via email to

[Prev in Thread] Current Thread [Next in Thread]