[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-devel] [PATCHv3 13/20] block: introduce bdrv_zeroize
From: |
Stefan Hajnoczi |
Subject: |
Re: [Qemu-devel] [PATCHv3 13/20] block: introduce bdrv_zeroize |
Date: |
Mon, 7 Oct 2013 10:34:15 +0200 |
User-agent: |
Mutt/1.5.21 (2010-09-15) |
On Tue, Sep 24, 2013 at 03:35:07PM +0200, Peter Lieven wrote:
> this patch adds a call to completely zero out a block device.
> the operation is sped up by checking the block status and
> only writing zeroes to the device if they currently do not
> return zeroes. optionally the zero writing can be sped up
> by setting the flag BDRV_REQ_MAY_UNMAP to emulate the zero
> write by unmapping if the driver supports it.
>
> Signed-off-by: Peter Lieven <address@hidden>
> ---
> block.c | 37 +++++++++++++++++++++++++++++++++++++
> include/block/block.h | 1 +
> 2 files changed, 38 insertions(+)
>
> diff --git a/block.c b/block.c
> index 784e545..66b9eae 100644
> --- a/block.c
> +++ b/block.c
> @@ -2398,6 +2398,43 @@ int bdrv_write_zeroes(BlockDriverState *bs, int64_t
> sector_num,
> BDRV_REQ_ZERO_WRITE | flags);
> }
>
> +/*
> + * Completely zero out a block device with the help of bdrv_write_zeroes.
> + * The operation is sped up by checking the block status and only writing
> + * zeroes to the device if they currently do not return zeroes. Optional
> + * flags are passed through to bdrv_write_zeroes (e.g. BDRV_REQ_MAY_UNMAP).
> + *
> + * Returns < 0 on error, 0 on success. For error codes see bdrv_write().
> + */
> +int bdrv_zeroize(BlockDriverState *bs, BdrvRequestFlags flags)
BlockDriver->bdrv_make_empty() implements zeroing the entire disk for
image formats. Please extend that function prototype instead of adding
a new interface.
Stefan