Skip to content

Commit

Permalink
block: pass BlockDriver reference to the .bdrv_co_create
Browse files Browse the repository at this point in the history
This will allow the reuse of a single generic .bdrv_co_create
implementation for several drivers.
No functional changes.

Signed-off-by: Maxim Levitsky <mlevitsk@redhat.com>
Message-Id: <20200326011218.29230-2-mlevitsk@redhat.com>
Reviewed-by: Denis V. Lunev <den@openvz.org>
Signed-off-by: Max Reitz <mreitz@redhat.com>
  • Loading branch information
Maxim Levitsky authored and XanClic committed Mar 26, 2020
1 parent 66c8672 commit b92902d
Show file tree
Hide file tree
Showing 19 changed files with 49 additions and 20 deletions.
3 changes: 2 additions & 1 deletion block.c
Original file line number Diff line number Diff line change
Expand Up @@ -483,7 +483,8 @@ static void coroutine_fn bdrv_create_co_entry(void *opaque)
CreateCo *cco = opaque;
assert(cco->drv);

ret = cco->drv->bdrv_co_create_opts(cco->filename, cco->opts, &local_err);
ret = cco->drv->bdrv_co_create_opts(cco->drv,
cco->filename, cco->opts, &local_err);
error_propagate(&cco->err, local_err);
cco->ret = ret;
}
Expand Down
3 changes: 2 additions & 1 deletion block/crypto.c
Original file line number Diff line number Diff line change
Expand Up @@ -601,7 +601,8 @@ block_crypto_co_create_luks(BlockdevCreateOptions *create_options, Error **errp)
return ret;
}

static int coroutine_fn block_crypto_co_create_opts_luks(const char *filename,
static int coroutine_fn block_crypto_co_create_opts_luks(BlockDriver *drv,
const char *filename,
QemuOpts *opts,
Error **errp)
{
Expand Down
4 changes: 3 additions & 1 deletion block/file-posix.c
Original file line number Diff line number Diff line change
Expand Up @@ -2405,7 +2405,9 @@ raw_co_create(BlockdevCreateOptions *options, Error **errp)
return result;
}

static int coroutine_fn raw_co_create_opts(const char *filename, QemuOpts *opts,
static int coroutine_fn raw_co_create_opts(BlockDriver *drv,
const char *filename,
QemuOpts *opts,
Error **errp)
{
BlockdevCreateOptions options;
Expand Down
4 changes: 3 additions & 1 deletion block/file-win32.c
Original file line number Diff line number Diff line change
Expand Up @@ -588,7 +588,9 @@ static int raw_co_create(BlockdevCreateOptions *options, Error **errp)
return 0;
}

static int coroutine_fn raw_co_create_opts(const char *filename, QemuOpts *opts,
static int coroutine_fn raw_co_create_opts(BlockDriver *drv,
const char *filename,
QemuOpts *opts,
Error **errp)
{
BlockdevCreateOptions options;
Expand Down
3 changes: 2 additions & 1 deletion block/gluster.c
Original file line number Diff line number Diff line change
Expand Up @@ -1130,7 +1130,8 @@ static int qemu_gluster_co_create(BlockdevCreateOptions *options,
return ret;
}

static int coroutine_fn qemu_gluster_co_create_opts(const char *filename,
static int coroutine_fn qemu_gluster_co_create_opts(BlockDriver *drv,
const char *filename,
QemuOpts *opts,
Error **errp)
{
Expand Down
4 changes: 3 additions & 1 deletion block/nfs.c
Original file line number Diff line number Diff line change
Expand Up @@ -662,7 +662,9 @@ static int nfs_file_co_create(BlockdevCreateOptions *options, Error **errp)
return ret;
}

static int coroutine_fn nfs_file_co_create_opts(const char *url, QemuOpts *opts,
static int coroutine_fn nfs_file_co_create_opts(BlockDriver *drv,
const char *url,
QemuOpts *opts,
Error **errp)
{
BlockdevCreateOptions *create_options;
Expand Down
3 changes: 2 additions & 1 deletion block/parallels.c
Original file line number Diff line number Diff line change
Expand Up @@ -609,7 +609,8 @@ static int coroutine_fn parallels_co_create(BlockdevCreateOptions* opts,
goto out;
}

static int coroutine_fn parallels_co_create_opts(const char *filename,
static int coroutine_fn parallels_co_create_opts(BlockDriver *drv,
const char *filename,
QemuOpts *opts,
Error **errp)
{
Expand Down
3 changes: 2 additions & 1 deletion block/qcow.c
Original file line number Diff line number Diff line change
Expand Up @@ -934,7 +934,8 @@ static int coroutine_fn qcow_co_create(BlockdevCreateOptions *opts,
return ret;
}

static int coroutine_fn qcow_co_create_opts(const char *filename,
static int coroutine_fn qcow_co_create_opts(BlockDriver *drv,
const char *filename,
QemuOpts *opts, Error **errp)
{
BlockdevCreateOptions *create_options = NULL;
Expand Down
4 changes: 3 additions & 1 deletion block/qcow2.c
Original file line number Diff line number Diff line change
Expand Up @@ -3558,7 +3558,9 @@ qcow2_co_create(BlockdevCreateOptions *create_options, Error **errp)
return ret;
}

static int coroutine_fn qcow2_co_create_opts(const char *filename, QemuOpts *opts,
static int coroutine_fn qcow2_co_create_opts(BlockDriver *drv,
const char *filename,
QemuOpts *opts,
Error **errp)
{
BlockdevCreateOptions *create_options = NULL;
Expand Down
3 changes: 2 additions & 1 deletion block/qed.c
Original file line number Diff line number Diff line change
Expand Up @@ -720,7 +720,8 @@ static int coroutine_fn bdrv_qed_co_create(BlockdevCreateOptions *opts,
return ret;
}

static int coroutine_fn bdrv_qed_co_create_opts(const char *filename,
static int coroutine_fn bdrv_qed_co_create_opts(BlockDriver *drv,
const char *filename,
QemuOpts *opts,
Error **errp)
{
Expand Down
4 changes: 3 additions & 1 deletion block/raw-format.c
Original file line number Diff line number Diff line change
Expand Up @@ -419,7 +419,9 @@ static int raw_has_zero_init_truncate(BlockDriverState *bs)
return bdrv_has_zero_init_truncate(bs->file->bs);
}

static int coroutine_fn raw_co_create_opts(const char *filename, QemuOpts *opts,
static int coroutine_fn raw_co_create_opts(BlockDriver *drv,
const char *filename,
QemuOpts *opts,
Error **errp)
{
return bdrv_create_file(filename, opts, errp);
Expand Down
3 changes: 2 additions & 1 deletion block/rbd.c
Original file line number Diff line number Diff line change
Expand Up @@ -437,7 +437,8 @@ static int qemu_rbd_co_create(BlockdevCreateOptions *options, Error **errp)
return qemu_rbd_do_create(options, NULL, NULL, errp);
}

static int coroutine_fn qemu_rbd_co_create_opts(const char *filename,
static int coroutine_fn qemu_rbd_co_create_opts(BlockDriver *drv,
const char *filename,
QemuOpts *opts,
Error **errp)
{
Expand Down
4 changes: 3 additions & 1 deletion block/sheepdog.c
Original file line number Diff line number Diff line change
Expand Up @@ -2157,7 +2157,9 @@ static int sd_co_create(BlockdevCreateOptions *options, Error **errp)
return ret;
}

static int coroutine_fn sd_co_create_opts(const char *filename, QemuOpts *opts,
static int coroutine_fn sd_co_create_opts(BlockDriver *drv,
const char *filename,
QemuOpts *opts,
Error **errp)
{
BlockdevCreateOptions *create_options = NULL;
Expand Down
4 changes: 3 additions & 1 deletion block/ssh.c
Original file line number Diff line number Diff line change
Expand Up @@ -963,7 +963,9 @@ static int ssh_co_create(BlockdevCreateOptions *options, Error **errp)
return ret;
}

static int coroutine_fn ssh_co_create_opts(const char *filename, QemuOpts *opts,
static int coroutine_fn ssh_co_create_opts(BlockDriver *drv,
const char *filename,
QemuOpts *opts,
Error **errp)
{
BlockdevCreateOptions *create_options;
Expand Down
4 changes: 3 additions & 1 deletion block/vdi.c
Original file line number Diff line number Diff line change
Expand Up @@ -896,7 +896,9 @@ static int coroutine_fn vdi_co_create(BlockdevCreateOptions *create_options,
return vdi_co_do_create(create_options, DEFAULT_CLUSTER_SIZE, errp);
}

static int coroutine_fn vdi_co_create_opts(const char *filename, QemuOpts *opts,
static int coroutine_fn vdi_co_create_opts(BlockDriver *drv,
const char *filename,
QemuOpts *opts,
Error **errp)
{
QDict *qdict = NULL;
Expand Down
3 changes: 2 additions & 1 deletion block/vhdx.c
Original file line number Diff line number Diff line change
Expand Up @@ -2046,7 +2046,8 @@ static int coroutine_fn vhdx_co_create(BlockdevCreateOptions *opts,
return ret;
}

static int coroutine_fn vhdx_co_create_opts(const char *filename,
static int coroutine_fn vhdx_co_create_opts(BlockDriver *drv,
const char *filename,
QemuOpts *opts,
Error **errp)
{
Expand Down
4 changes: 3 additions & 1 deletion block/vmdk.c
Original file line number Diff line number Diff line change
Expand Up @@ -2588,7 +2588,9 @@ static BlockBackend *vmdk_co_create_opts_cb(int64_t size, int idx,
return blk;
}

static int coroutine_fn vmdk_co_create_opts(const char *filename, QemuOpts *opts,
static int coroutine_fn vmdk_co_create_opts(BlockDriver *drv,
const char *filename,
QemuOpts *opts,
Error **errp)
{
Error *local_err = NULL;
Expand Down
6 changes: 4 additions & 2 deletions block/vpc.c
Original file line number Diff line number Diff line change
Expand Up @@ -1089,8 +1089,10 @@ static int coroutine_fn vpc_co_create(BlockdevCreateOptions *opts,
return ret;
}

static int coroutine_fn vpc_co_create_opts(const char *filename,
QemuOpts *opts, Error **errp)
static int coroutine_fn vpc_co_create_opts(BlockDriver *drv,
const char *filename,
QemuOpts *opts,
Error **errp)
{
BlockdevCreateOptions *create_options = NULL;
QDict *qdict;
Expand Down
3 changes: 2 additions & 1 deletion include/block/block_int.h
Original file line number Diff line number Diff line change
Expand Up @@ -135,7 +135,8 @@ struct BlockDriver {
void (*bdrv_close)(BlockDriverState *bs);
int coroutine_fn (*bdrv_co_create)(BlockdevCreateOptions *opts,
Error **errp);
int coroutine_fn (*bdrv_co_create_opts)(const char *filename,
int coroutine_fn (*bdrv_co_create_opts)(BlockDriver *drv,
const char *filename,
QemuOpts *opts,
Error **errp);
int (*bdrv_make_empty)(BlockDriverState *bs);
Expand Down

0 comments on commit b92902d

Please sign in to comment.