[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.
signature.asc
Description: PGP signature
- Re: [PATCH 4/5] vduse-blk: Add vduse-blk resize support,
Stefan Hajnoczi <=