[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [PATCH V3 2/6] block/rbd: store object_size in BDRVRBDState
From: |
Ilya Dryomov |
Subject: |
Re: [PATCH V3 2/6] block/rbd: store object_size in BDRVRBDState |
Date: |
Sat, 19 Jun 2021 22:02:34 +0200 |
On Wed, May 19, 2021 at 4:29 PM Peter Lieven <pl@kamp.de> wrote:
>
> Signed-off-by: Peter Lieven <pl@kamp.de>
> ---
> block/rbd.c | 18 +++++++-----------
> 1 file changed, 7 insertions(+), 11 deletions(-)
>
> diff --git a/block/rbd.c b/block/rbd.c
> index 6b1cbe1d75..b4caea4f1b 100644
> --- a/block/rbd.c
> +++ b/block/rbd.c
> @@ -90,6 +90,7 @@ typedef struct BDRVRBDState {
> char *snap;
> char *namespace;
> uint64_t image_size;
> + uint64_t object_size;
> } BDRVRBDState;
>
> static int qemu_rbd_connect(rados_t *cluster, rados_ioctx_t *io_ctx,
> @@ -675,6 +676,7 @@ static int qemu_rbd_open(BlockDriverState *bs, QDict
> *options, int flags,
> const QDictEntry *e;
> Error *local_err = NULL;
> char *keypairs, *secretid;
> + rbd_image_info_t info;
> int r;
>
> keypairs = g_strdup(qdict_get_try_str(options, "=keyvalue-pairs"));
> @@ -739,13 +741,15 @@ static int qemu_rbd_open(BlockDriverState *bs, QDict
> *options, int flags,
> goto failed_open;
> }
>
> - r = rbd_get_size(s->image, &s->image_size);
> + r = rbd_stat(s->image, &info, sizeof(info));
> if (r < 0) {
> - error_setg_errno(errp, -r, "error getting image size from %s",
> + error_setg_errno(errp, -r, "error getting image info from %s",
> s->image_name);
> rbd_close(s->image);
> goto failed_open;
> }
> + s->image_size = info.size;
> + s->object_size = info.obj_size;
>
> /* If we are using an rbd snapshot, we must be r/o, otherwise
> * leave as-is */
> @@ -957,15 +961,7 @@ static BlockAIOCB *qemu_rbd_aio_flush(BlockDriverState
> *bs,
> static int qemu_rbd_getinfo(BlockDriverState *bs, BlockDriverInfo *bdi)
> {
> BDRVRBDState *s = bs->opaque;
> - rbd_image_info_t info;
> - int r;
> -
> - r = rbd_stat(s->image, &info, sizeof(info));
> - if (r < 0) {
> - return r;
> - }
> -
> - bdi->cluster_size = info.obj_size;
> + bdi->cluster_size = s->object_size;
> return 0;
> }
>
> --
> 2.17.1
>
>
>
Reviewed-by: Ilya Dryomov <idryomov@gmail.com>
Thanks,
Ilya
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- Re: [PATCH V3 2/6] block/rbd: store object_size in BDRVRBDState,
Ilya Dryomov <=