[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-devel] [PATCH v3 5/6] vmdk: Set maximum bytes allocated in one
From: |
Fam Zheng |
Subject: |
Re: [Qemu-devel] [PATCH v3 5/6] vmdk: Set maximum bytes allocated in one cycle |
Date: |
Wed, 19 Apr 2017 21:00:44 +0800 |
User-agent: |
Mutt/1.8.0 (2017-02-23) |
On Sat, 04/01 20:14, Ashijeet Acharya wrote:
> Set the maximum bytes allowed to get allocated at once to be not more
> than the extent size boundary to handle writes at two separate extents
> appropriately.
>
> Signed-off-by: Ashijeet Acharya <address@hidden>
> ---
> block/vmdk.c | 13 +++++++++++--
> 1 file changed, 11 insertions(+), 2 deletions(-)
>
> diff --git a/block/vmdk.c b/block/vmdk.c
> index a8babd7..9456ddd 100644
> --- a/block/vmdk.c
> +++ b/block/vmdk.c
> @@ -1767,6 +1767,7 @@ static int vmdk_pwritev(BlockDriverState *bs, uint64_t
> offset,
> int64_t offset_in_cluster, n_bytes;
> uint64_t cluster_offset;
> uint64_t bytes_done = 0;
> + uint64_t extent_size;
> VmdkMetaData m_data;
> uint32_t total_alloc_clusters = 0;
>
> @@ -1782,9 +1783,17 @@ static int vmdk_pwritev(BlockDriverState *bs, uint64_t
> offset,
> if (!extent) {
> return -EIO;
> }
> + extent_size = extent->end_sector * BDRV_SECTOR_SIZE;
Maybe extent_end to be more accurate?
> +
> offset_in_cluster = vmdk_find_offset_in_cluster(extent, offset);
> - n_bytes = MIN(bytes, extent->cluster_sectors * BDRV_SECTOR_SIZE
> - - offset_in_cluster);
> +
> + /* truncate n_bytes to first cluster because we need to perform COW
> */
Makes sense, but shouldn't this be squashed into patch patch 3? Because it looks
like it is fixing an intermediate bug.
> + if (offset_in_cluster > 0) {
> + n_bytes = MIN(bytes, extent->cluster_sectors * BDRV_SECTOR_SIZE
> + - offset_in_cluster);
> + } else {
> + n_bytes = MIN(bytes, extent_size - offset);
> + }
>
> ret = vmdk_alloc_cluster_offset(bs, extent, &m_data, offset,
> !(extent->compressed || zeroed),
> --
> 2.6.2
>
Fam
[Qemu-devel] [PATCH v3 5/6] vmdk: Set maximum bytes allocated in one cycle, Ashijeet Acharya, 2017/04/01
- Re: [Qemu-devel] [PATCH v3 5/6] vmdk: Set maximum bytes allocated in one cycle,
Fam Zheng <=
[Qemu-devel] [PATCH v3 6/6] vmdk: Update metadata for multiple clusters, Ashijeet Acharya, 2017/04/01