qemu-block
[Top][All Lists]
Advanced

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

Re: [PATCH 4/5] vduse-blk: Add vduse-blk resize support


From: Stefan Hajnoczi
Subject: Re: [PATCH 4/5] vduse-blk: Add vduse-blk resize support
Date: Mon, 7 Feb 2022 14:18:40 +0000

On Tue, Jan 25, 2022 at 09:17:59PM +0800, Xie Yongji wrote:
> To support block resize, this uses vduse_dev_update_config()
> to update the capacity field in configuration space and inject
> config interrupt on the block resize callback.
> 
> Signed-off-by: Xie Yongji <xieyongji@bytedance.com>
> ---
>  block/export/vduse-blk.c | 19 +++++++++++++++++++
>  1 file changed, 19 insertions(+)
> 
> diff --git a/block/export/vduse-blk.c b/block/export/vduse-blk.c
> index 5a8d289685..83845e9a9a 100644
> --- a/block/export/vduse-blk.c
> +++ b/block/export/vduse-blk.c
> @@ -297,6 +297,23 @@ static void blk_aio_detach(void *opaque)
>      vblk_exp->export.ctx = NULL;
>  }
>  
> +static void vduse_blk_resize(void *opaque)
> +{
> +    BlockExport *exp = opaque;
> +    VduseBlkExport *vblk_exp = container_of(exp, VduseBlkExport, export);
> +    struct virtio_blk_config config;
> +
> +    config.capacity =
> +            cpu_to_le64(blk_getlength(exp->blk) >> VIRTIO_BLK_SECTOR_BITS);
> +    vduse_dev_update_config(vblk_exp->dev, sizeof(config.capacity),
> +                            offsetof(struct virtio_blk_config, capacity),
> +                            (char *)&config.capacity);
> +}
> +
> +static const BlockDevOps vduse_block_ops = {
> +    .resize_cb = vduse_blk_resize,
> +};
> +
>  static int vduse_blk_exp_create(BlockExport *exp, BlockExportOptions *opts,
>                                  Error **errp)
>  {
> @@ -387,6 +404,8 @@ static int vduse_blk_exp_create(BlockExport *exp, 
> BlockExportOptions *opts,
>      blk_add_aio_context_notifier(exp->blk, blk_aio_attached, blk_aio_detach,
>                                   vblk_exp);
>  
> +    blk_set_dev_ops(exp->blk, &vduse_block_ops, exp);

Detach is missing, so BlockBackend->dev_ops will become stale after the
export is deleted. Please add code to detach when the export is deleted.

Attachment: signature.asc
Description: PGP signature


reply via email to

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