qemu-block
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Qemu-block] [Qemu-devel] [PATCH v6 14/20] sheepdog: Switch to .bdrv


From: Jeff Cody
Subject: Re: [Qemu-block] [Qemu-devel] [PATCH v6 14/20] sheepdog: Switch to .bdrv_co_block_status()
Date: Tue, 2 Jan 2018 16:52:09 -0500
User-agent: Mutt/1.5.24 (2015-08-30)

On Thu, Dec 07, 2017 at 02:30:30PM -0600, Eric Blake wrote:
> We are gradually moving away from sector-based interfaces, towards
> byte-based.  Update the sheepdog driver accordingly.
> 
> Signed-off-by: Eric Blake <address@hidden>
> Reviewed-by: Vladimir Sementsov-Ogievskiy <address@hidden>
> 
> ---
> v5: no change
> v4: update to interface tweak
> v3: no change
> v2: rebase to mapping flag
> ---
>  block/sheepdog.c | 26 +++++++++++++-------------
>  1 file changed, 13 insertions(+), 13 deletions(-)
> 
> diff --git a/block/sheepdog.c b/block/sheepdog.c
> index 696a71442a..0af8b07892 100644
> --- a/block/sheepdog.c
> +++ b/block/sheepdog.c
> @@ -2988,19 +2988,19 @@ static coroutine_fn int 
> sd_co_pdiscard(BlockDriverState *bs, int64_t offset,
>      return acb.ret;
>  }
> 
> -static coroutine_fn int64_t
> -sd_co_get_block_status(BlockDriverState *bs, int64_t sector_num, int 
> nb_sectors,
> -                       int *pnum, BlockDriverState **file)
> +static coroutine_fn int
> +sd_co_block_status(BlockDriverState *bs, bool want_zero, int64_t offset,
> +                   int64_t bytes, int64_t *pnum, int64_t *map,
> +                   BlockDriverState **file)
>  {
>      BDRVSheepdogState *s = bs->opaque;
>      SheepdogInode *inode = &s->inode;
>      uint32_t object_size = (UINT32_C(1) << inode->block_size_shift);
> -    uint64_t offset = sector_num * BDRV_SECTOR_SIZE;
>      unsigned long start = offset / object_size,
> -                  end = DIV_ROUND_UP((sector_num + nb_sectors) *
> -                                     BDRV_SECTOR_SIZE, object_size);
> +                  end = DIV_ROUND_UP(offset + bytes, object_size);
>      unsigned long idx;
> -    int64_t ret = BDRV_BLOCK_DATA | BDRV_BLOCK_OFFSET_VALID | offset;
> +    *map = offset;
> +    int ret = BDRV_BLOCK_DATA | BDRV_BLOCK_OFFSET_VALID;
> 
>      for (idx = start; idx < end; idx++) {
>          if (inode->data_vdi_id[idx] == 0) {
> @@ -3017,9 +3017,9 @@ sd_co_get_block_status(BlockDriverState *bs, int64_t 
> sector_num, int nb_sectors,
>          }
>      }
> 
> -    *pnum = (idx - start) * object_size / BDRV_SECTOR_SIZE;
> -    if (*pnum > nb_sectors) {
> -        *pnum = nb_sectors;
> +    *pnum = (idx - start) * object_size;
> +    if (*pnum > bytes) {
> +        *pnum = bytes;
>      }
>      if (ret > 0 && ret & BDRV_BLOCK_OFFSET_VALID) {
>          *file = bs;
> @@ -3097,7 +3097,7 @@ static BlockDriver bdrv_sheepdog = {
>      .bdrv_co_writev = sd_co_writev,
>      .bdrv_co_flush_to_disk  = sd_co_flush_to_disk,
>      .bdrv_co_pdiscard = sd_co_pdiscard,
> -    .bdrv_co_get_block_status = sd_co_get_block_status,
> +    .bdrv_co_block_status   = sd_co_block_status,
> 
>      .bdrv_snapshot_create   = sd_snapshot_create,
>      .bdrv_snapshot_goto     = sd_snapshot_goto,
> @@ -3133,7 +3133,7 @@ static BlockDriver bdrv_sheepdog_tcp = {
>      .bdrv_co_writev = sd_co_writev,
>      .bdrv_co_flush_to_disk  = sd_co_flush_to_disk,
>      .bdrv_co_pdiscard = sd_co_pdiscard,
> -    .bdrv_co_get_block_status = sd_co_get_block_status,
> +    .bdrv_co_block_status   = sd_co_block_status,
> 
>      .bdrv_snapshot_create   = sd_snapshot_create,
>      .bdrv_snapshot_goto     = sd_snapshot_goto,
> @@ -3169,7 +3169,7 @@ static BlockDriver bdrv_sheepdog_unix = {
>      .bdrv_co_writev = sd_co_writev,
>      .bdrv_co_flush_to_disk  = sd_co_flush_to_disk,
>      .bdrv_co_pdiscard = sd_co_pdiscard,
> -    .bdrv_co_get_block_status = sd_co_get_block_status,
> +    .bdrv_co_block_status   = sd_co_block_status,
> 
>      .bdrv_snapshot_create   = sd_snapshot_create,
>      .bdrv_snapshot_goto     = sd_snapshot_goto,
> -- 
> 2.14.3
> 
> 

Minor conflicts here with head, but straightforward to fix.

Reviewed-by: Jeff Cody <address@hidden>




reply via email to

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