Skip to content

Commit

Permalink
parallels: naive implementation of parallels_co_pwrite_zeroes
Browse files Browse the repository at this point in the history
The zero flag is missed in the Parallels format specification. We can
resort to discard if we have no backing file.

Signed-off-by: Denis V. Lunev <den@openvz.org>
Reviewed-by: Alexander Ivanov <alexander.ivanov@virtuozzo.com>
  • Loading branch information
Denis V. Lunev committed Sep 20, 2023
1 parent e5e8955 commit 30e54a4
Showing 1 changed file with 14 additions and 0 deletions.
14 changes: 14 additions & 0 deletions block/parallels.c
Original file line number Diff line number Diff line change
Expand Up @@ -582,6 +582,19 @@ parallels_co_pdiscard(BlockDriverState *bs, int64_t offset, int64_t bytes)
return ret;
}

static int coroutine_fn
parallels_co_pwrite_zeroes(BlockDriverState *bs, int64_t offset, int64_t bytes,
BdrvRequestFlags flags)
{
/*
* The zero flag is missed in the Parallels format specification. We can
* resort to discard if we have no backing file (this condition is checked
* inside parallels_co_pdiscard().
*/
return parallels_co_pdiscard(bs, offset, bytes);
}


static void parallels_check_unclean(BlockDriverState *bs,
BdrvCheckResult *res,
BdrvCheckMode fix)
Expand Down Expand Up @@ -1463,6 +1476,7 @@ static BlockDriver bdrv_parallels = {
.bdrv_co_create_opts = parallels_co_create_opts,
.bdrv_co_check = parallels_co_check,
.bdrv_co_pdiscard = parallels_co_pdiscard,
.bdrv_co_pwrite_zeroes = parallels_co_pwrite_zeroes,
};

static void bdrv_parallels_init(void)
Expand Down

0 comments on commit 30e54a4

Please sign in to comment.