Commit bd0cf596 authored by Chunyan Liu's avatar Chunyan Liu Committed by Stefan Hajnoczi
Browse files

rbd.c: replace QEMUOptionParameter with QemuOpts

parent cd3a4cf6
Loading
Loading
Loading
Loading
+30 −33
Original line number Diff line number Diff line
@@ -289,8 +289,7 @@ static int qemu_rbd_set_conf(rados_t cluster, const char *conf, Error **errp)
    return ret;
}

static int qemu_rbd_create(const char *filename, QEMUOptionParameter *options,
                           Error **errp)
static int qemu_rbd_create(const char *filename, QemuOpts *opts, Error **errp)
{
    Error *local_err = NULL;
    int64_t bytes = 0;
@@ -315,12 +314,9 @@ static int qemu_rbd_create(const char *filename, QEMUOptionParameter *options,
    }

    /* Read out options */
    while (options && options->name) {
        if (!strcmp(options->name, BLOCK_OPT_SIZE)) {
            bytes = options->value.n;
        } else if (!strcmp(options->name, BLOCK_OPT_CLUSTER_SIZE)) {
            if (options->value.n) {
                objsize = options->value.n;
    bytes = qemu_opt_get_size_del(opts, BLOCK_OPT_SIZE, 0);
    objsize = qemu_opt_get_size_del(opts, BLOCK_OPT_CLUSTER_SIZE, 0);
    if (objsize) {
        if ((objsize - 1) & objsize) {    /* not a power of 2? */
            error_setg(errp, "obj size needs to be power of 2");
            return -EINVAL;
@@ -331,9 +327,6 @@ static int qemu_rbd_create(const char *filename, QEMUOptionParameter *options,
        }
        obj_order = ffs(objsize) - 1;
    }
        }
        options++;
    }

    clientname = qemu_rbd_parse_clientname(conf, clientname_buf);
    if (rados_create(&cluster, clientname) < 0) {
@@ -911,18 +904,22 @@ static BlockDriverAIOCB* qemu_rbd_aio_discard(BlockDriverState *bs,
}
#endif

static QEMUOptionParameter qemu_rbd_create_options[] = {
static QemuOptsList qemu_rbd_create_opts = {
    .name = "rbd-create-opts",
    .head = QTAILQ_HEAD_INITIALIZER(qemu_rbd_create_opts.head),
    .desc = {
        {
            .name = BLOCK_OPT_SIZE,
     .type = OPT_SIZE,
            .type = QEMU_OPT_SIZE,
            .help = "Virtual disk size"
        },
        {
            .name = BLOCK_OPT_CLUSTER_SIZE,
     .type = OPT_SIZE,
            .type = QEMU_OPT_SIZE,
            .help = "RBD object size"
        },
    {NULL}
        { /* end of list */ }
    }
};

static BlockDriver bdrv_rbd = {
@@ -931,10 +928,10 @@ static BlockDriver bdrv_rbd = {
    .bdrv_needs_filename = true,
    .bdrv_file_open     = qemu_rbd_open,
    .bdrv_close         = qemu_rbd_close,
    .bdrv_create        = qemu_rbd_create,
    .bdrv_create2       = qemu_rbd_create,
    .bdrv_has_zero_init = bdrv_has_zero_init_1,
    .bdrv_get_info      = qemu_rbd_getinfo,
    .create_options     = qemu_rbd_create_options,
    .create_opts        = &qemu_rbd_create_opts,
    .bdrv_getlength     = qemu_rbd_getlength,
    .bdrv_truncate      = qemu_rbd_truncate,
    .protocol_name      = "rbd",