[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-devel] [PATCH v2 07/12] block/json: Add bdrv_co_get_block_stat
From: |
Benoît Canet |
Subject: |
Re: [Qemu-devel] [PATCH v2 07/12] block/json: Add bdrv_co_get_block_status() |
Date: |
Mon, 24 Mar 2014 15:15:28 +0100 |
User-agent: |
Mutt/1.5.21 (2010-09-15) |
The Friday 07 Mar 2014 à 23:55:51 (+0100), Max Reitz wrote :
> Implement this function in the same way as raw_bsd does: Acknowledge
> that this is a passthrough driver (always return BDRV_BLOCK_OFFSET_VALID
> and BDRV_BLOCK_DATA and derive the offset directly from the sector
> index) and add BDRV_BLOCK_RAW to the returned value.
>
> Signed-off-by: Max Reitz <address@hidden>
> ---
> block/json.c | 10 ++++++++++
> 1 file changed, 10 insertions(+)
>
> diff --git a/block/json.c b/block/json.c
> index e4cdb68..966a5f5 100644
> --- a/block/json.c
> +++ b/block/json.c
> @@ -110,6 +110,15 @@ static coroutine_fn int
> json_co_write_zeroes(BlockDriverState *bs,
> return bdrv_co_write_zeroes(bs->file, sector_num, nb_sectors, flags);
> }
>
> +static coroutine_fn int64_t json_co_get_block_status(BlockDriverState *bs,
> + int64_t sector_num,
> + int nb_sectors, int
> *pnum)
> +{
> + *pnum = nb_sectors;
> + return BDRV_BLOCK_RAW | BDRV_BLOCK_OFFSET_VALID | BDRV_BLOCK_DATA |
> + (sector_num << BDRV_SECTOR_BITS);
> +}
> +
> static void json_invalidate_cache(BlockDriverState *bs)
> {
> return bdrv_invalidate_cache(bs->file);
> @@ -156,6 +165,7 @@ static BlockDriver bdrv_json = {
> .bdrv_aio_discard = json_aio_discard,
>
> .bdrv_co_write_zeroes = json_co_write_zeroes,
> + .bdrv_co_get_block_status = json_co_get_block_status,
>
> .bdrv_invalidate_cache = json_invalidate_cache,
>
> --
> 1.9.0
>
If this filter is stacked on top of qcow2 even the simple BDRV_BLOCK_RAW feel
weird.
I think the best thing we can do is to ask to Peter Lieven if this code has the
intended meaning in a block filter.
Peter:
You wrote the inspiration for this code in raw-posix.c.
What do you think of this piece of code designed to be stacked as a block filter
on top of regular block driver (qcow2 etc) ?
Does it makes sense ? Or would it be better to forward the call to the lower
level ?
Best regards
Benoît
- Re: [Qemu-devel] [PATCH v2 02/12] check-qdict: Add test for qdict_join(), (continued)
- [Qemu-devel] [PATCH v2 03/12] block: Add "has_single_child" field for drivers, Max Reitz, 2014/03/07
- [Qemu-devel] [PATCH v2 04/12] block/json: Add JSON protocol driver, Max Reitz, 2014/03/07
- [Qemu-devel] [PATCH v2 05/12] block/json: Add functions for cache control, Max Reitz, 2014/03/07
- [Qemu-devel] [PATCH v2 06/12] block/json: Add functions for writing zeroes etc., Max Reitz, 2014/03/07
- [Qemu-devel] [PATCH v2 07/12] block/json: Add bdrv_co_get_block_status(), Max Reitz, 2014/03/07
- Re: [Qemu-devel] [PATCH v2 07/12] block/json: Add bdrv_co_get_block_status(),
Benoît Canet <=
- [Qemu-devel] [PATCH v2 08/12] block/json: Add ioctl etc., Max Reitz, 2014/03/07
- [Qemu-devel] [PATCH v2 09/12] block/json: Add bdrv_get_specific_info(), Max Reitz, 2014/03/07
- [Qemu-devel] [PATCH v2 10/12] block/raw_bsd: Add bdrv_get_specific_info(), Max Reitz, 2014/03/07
- [Qemu-devel] [PATCH v2 11/12] block/qapi: Ignore filters on top for format name, Max Reitz, 2014/03/07
- [Qemu-devel] [PATCH v2 12/12] iotests: Add test for the JSON protocol, Max Reitz, 2014/03/07
- Re: [Qemu-devel] [PATCH v2 00/12] block/json: Add JSON protocol driver, Max Reitz, 2014/03/21