Commit 91a073a9 authored by Kevin Wolf's avatar Kevin Wolf Committed by Anthony Liguori
Browse files

Drop bdrv_create2



This patch converts the remaining users of bdrv_create2 to bdrv_create and
removes the now unused function.

Signed-off-by: default avatarKevin Wolf <kwolf@redhat.com>
Signed-off-by: default avatarAnthony Liguori <aliguori@us.ibm.com>
parent a980c98c
Loading
Loading
Loading
Loading
+15 −40
Original line number Diff line number Diff line
@@ -184,42 +184,6 @@ BlockDriver *bdrv_find_format(const char *format_name)
    return NULL;
}

int bdrv_create2(BlockDriver *drv,
                const char *filename, int64_t size_in_sectors,
                const char *backing_file, const char *backing_format,
                int flags)
{
    QEMUOptionParameter *options;

    options = parse_option_parameters("", drv->create_options, NULL);

    // Process flags
    if (flags & ~(BLOCK_FLAG_ENCRYPT | BLOCK_FLAG_COMPAT6 | BLOCK_FLAG_COMPRESS)) {
        return -ENOTSUP;
    }

    if (flags & BLOCK_FLAG_ENCRYPT) {
        set_option_parameter_int(options, BLOCK_OPT_ENCRYPT, 1);
    }
    if (flags & BLOCK_FLAG_COMPAT6) {
        set_option_parameter_int(options, BLOCK_OPT_COMPAT6, 1);
    }

    // Add size to options
    set_option_parameter_int(options, BLOCK_OPT_SIZE, size_in_sectors * 512);

    // Backing files
    if ((backing_file != NULL && set_option_parameter(options,
            BLOCK_OPT_BACKING_FILE, backing_file))
        || (backing_format != NULL && set_option_parameter(options,
            BLOCK_OPT_BACKING_FMT, backing_format)))
    {
        return -ENOTSUP;
    }

    return bdrv_create(drv, filename, options);
}

int bdrv_create(BlockDriver *drv, const char* filename,
    QEMUOptionParameter *options)
{
@@ -392,6 +356,8 @@ int bdrv_open2(BlockDriverState *bs, const char *filename, int flags,
        BlockDriverState *bs1;
        int64_t total_size;
        int is_protocol = 0;
        BlockDriver *bdrv_qcow2;
        QEMUOptionParameter *options;

        /* if snapshot, we create a temporary backing file and open it
           instead of opening 'filename' directly */
@@ -419,14 +385,23 @@ int bdrv_open2(BlockDriverState *bs, const char *filename, int flags,
        else
            realpath(filename, backing_filename);

        ret = bdrv_create2(bdrv_find_format("qcow2"), tmp_filename,
                           total_size, backing_filename, 
                           (drv ? drv->format_name : NULL), 0);
        bdrv_qcow2 = bdrv_find_format("qcow2");
        options = parse_option_parameters("", bdrv_qcow2->create_options, NULL);

        set_option_parameter_int(options, BLOCK_OPT_SIZE, total_size * 512);
        set_option_parameter(options, BLOCK_OPT_BACKING_FILE, backing_filename);
        if (drv) {
            set_option_parameter(options, BLOCK_OPT_BACKING_FMT,
                drv->format_name);
        }

        ret = bdrv_create(bdrv_qcow2, tmp_filename, options);
        if (ret < 0) {
            return ret;
        }

        filename = tmp_filename;
        drv = bdrv_find_format("qcow2");
        drv = bdrv_qcow2;
        bs->is_temporary = 1;
    }

+9 −2
Original line number Diff line number Diff line
@@ -2770,6 +2770,8 @@ static BlockDriver vvfat_write_target = {

static int enable_write_target(BDRVVVFATState *s)
{
    BlockDriver *bdrv_qcow;
    QEMUOptionParameter *options;
    int size = sector2cluster(s, s->sector_count);
    s->used_clusters = calloc(size, 1);

@@ -2777,8 +2779,13 @@ static int enable_write_target(BDRVVVFATState *s)

    s->qcow_filename = qemu_malloc(1024);
    get_tmp_filename(s->qcow_filename, 1024);
    if (bdrv_create2(bdrv_find_format("qcow"),
		s->qcow_filename, s->sector_count, "fat:", NULL, 0) < 0)

    bdrv_qcow = bdrv_find_format("qcow");
    options = parse_option_parameters("", bdrv_qcow->create_options, NULL);
    set_option_parameter_int(options, BLOCK_OPT_SIZE, s->sector_count * 512);
    set_option_parameter(options, BLOCK_OPT_BACKING_FILE, "fat:");

    if (bdrv_create(bdrv_qcow, s->qcow_filename, options) < 0)
	return -1;
    s->qcow = bdrv_new("");
    if (s->qcow == NULL || bdrv_open(s->qcow, s->qcow_filename, 0) < 0)