[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-devel] [PATCH v23 14/32] vvfat.c: handle cross_driver's create
From: |
Leandro Dorileo |
Subject: |
Re: [Qemu-devel] [PATCH v23 14/32] vvfat.c: handle cross_driver's create_options and create_opts |
Date: |
Tue, 25 Mar 2014 19:17:49 +0000 |
User-agent: |
Mutt/1.5.23 (2014-03-12) |
On Fri, Mar 21, 2014 at 06:12:25PM +0800, Chunyan Liu wrote:
> vvfat shares create options of qcow driver. To avoid vvfat broken when
> qcow driver changes from QEMUOptionParameter to QemuOpts, let it able
> to handle both cases.
>
> Signed-off-by: Chunyan Liu <address@hidden>
> ---
> block/vvfat.c | 19 ++++++++++++++-----
> 1 file changed, 14 insertions(+), 5 deletions(-)
>
> diff --git a/block/vvfat.c b/block/vvfat.c
> index ee32b3c..82b1521 100644
> --- a/block/vvfat.c
> +++ b/block/vvfat.c
> @@ -2907,7 +2907,8 @@ static BlockDriver vvfat_write_target = {
> static int enable_write_target(BDRVVVFATState *s)
> {
> BlockDriver *bdrv_qcow;
> - QEMUOptionParameter *options;
> + QemuOptsList *create_opts;
> + QemuOpts *opts;
opts is used uninitialized.
> Error *local_err = NULL;
> int ret;
> int size = sector2cluster(s, s->sector_count);
> @@ -2922,11 +2923,17 @@ static int enable_write_target(BDRVVVFATState *s)
> }
>
> 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:");
> + assert(!(bdrv_qcow->create_opts && bdrv_qcow->create_options));
> + if (bdrv_qcow->create_options) {
> + create_opts = params_to_opts(bdrv_qcow->create_options);
> + } else {
> + create_opts = bdrv_qcow->create_opts;
> + }
> + opts = qemu_opts_create(create_opts, NULL, 0, &error_abort);
> + qemu_opt_set_number(opts, BLOCK_OPT_SIZE, s->sector_count * 512);
> + qemu_opt_set(opts, BLOCK_OPT_BACKING_FILE, "fat:");
>
> - ret = bdrv_create(bdrv_qcow, s->qcow_filename, options, NULL,
> &local_err);
> + ret = bdrv_create(bdrv_qcow, s->qcow_filename, NULL, opts, &local_err);
> if (ret < 0) {
> qerror_report_err(local_err);
> error_free(local_err);
> @@ -2955,6 +2962,8 @@ static int enable_write_target(BDRVVVFATState *s)
> return 0;
>
> err:
> + qemu_opts_del(opts);
> + qemu_opts_free(create_opts);
> g_free(s->qcow_filename);
> s->qcow_filename = NULL;
> return ret;
> --
> 1.7.12.4
>
>
--
Leandro Dorileo
- Re: [Qemu-devel] [PATCH v23 04/32] change opt->name and opt->str from (const char *) to (char *), (continued)
- [Qemu-devel] [PATCH v23 08/32] add convert functions between QEMUOptionParameter to QemuOpts, Chunyan Liu, 2014/03/21
- [Qemu-devel] [PATCH v23 10/32] check NULL input for qemu_opts_del, Chunyan Liu, 2014/03/21
- [Qemu-devel] [PATCH v23 11/32] qemu_opts_print: change fprintf stderr to printf, Chunyan Liu, 2014/03/21
- [Qemu-devel] [PATCH v23 12/32] qcow2.c: remove 'assigned' check in amend, Chunyan Liu, 2014/03/21
- [Qemu-devel] [PATCH v23 14/32] vvfat.c: handle cross_driver's create_options and create_opts, Chunyan Liu, 2014/03/21
- Re: [Qemu-devel] [PATCH v23 14/32] vvfat.c: handle cross_driver's create_options and create_opts,
Leandro Dorileo <=
- [Qemu-devel] [PATCH v23 13/32] change block layer to support both QemuOpts and QEMUOptionParamter, Chunyan Liu, 2014/03/21
- [Qemu-devel] [PATCH v23 09/32] add qemu_opts_append to repalce append_option_parameters, Chunyan Liu, 2014/03/21
- [Qemu-devel] [PATCH v23 15/32] cow.c: replace QEMUOptionParameter with QemuOpts, Chunyan Liu, 2014/03/21
- [Qemu-devel] [PATCH v23 17/32] iscsi.c: replace QEMUOptionParameter with QemuOpts, Chunyan Liu, 2014/03/21
- [Qemu-devel] [PATCH v23 19/32] qcow2.c: replace QEMUOptionParameter with QemuOpts, Chunyan Liu, 2014/03/21
- [Qemu-devel] [PATCH v23 16/32] gluster.c: replace QEMUOptionParameter with QemuOpts, Chunyan Liu, 2014/03/21
- [Qemu-devel] [PATCH v23 18/32] qcow.c: replace QEMUOptionParameter with QemuOpts, Chunyan Liu, 2014/03/21
- [Qemu-devel] [PATCH v23 20/32] qed.c: replace QEMUOptionParameter with QemuOpts, Chunyan Liu, 2014/03/21