Message ID | 1417099720-16428-3-git-send-email-mreitz@redhat.com |
---|---|
State | New |
Headers | show |
On 11/27/2014 07:48 AM, Max Reitz wrote: > We can always assume raw, file and qcow2 being available; so do not use > bdrv_find_format() to locate their BlockDriver objects but statically > reference the respective objects. > > Cc: qemu-stable@nongnu.org > Signed-off-by: Max Reitz <mreitz@redhat.com> > --- > block.c | 11 ++--------- > 1 file changed, 2 insertions(+), 9 deletions(-) Reviewed-by: Eric Blake <eblake@redhat.com> > @@ -1293,7 +1288,6 @@ int bdrv_append_temp_snapshot(BlockDriverState *bs, int flags, Error **errp) > /* TODO: extra byte is a hack to ensure MAX_PATH space on Windows. */ > char *tmp_filename = g_malloc0(PATH_MAX + 1); > int64_t total_size; > - BlockDriver *bdrv_qcow2; Hmm - how hard would it be to get qemu to be clean under -Wshadow? This is a case where you would have had to change this hunk during patch 1 if -Wshadow were in effect.
On 2014-12-01 at 17:01, Eric Blake wrote: > On 11/27/2014 07:48 AM, Max Reitz wrote: >> We can always assume raw, file and qcow2 being available; so do not use >> bdrv_find_format() to locate their BlockDriver objects but statically >> reference the respective objects. >> >> Cc: qemu-stable@nongnu.org >> Signed-off-by: Max Reitz <mreitz@redhat.com> >> --- >> block.c | 11 ++--------- >> 1 file changed, 2 insertions(+), 9 deletions(-) > Reviewed-by: Eric Blake <eblake@redhat.com> > >> @@ -1293,7 +1288,6 @@ int bdrv_append_temp_snapshot(BlockDriverState *bs, int flags, Error **errp) >> /* TODO: extra byte is a hack to ensure MAX_PATH space on Windows. */ >> char *tmp_filename = g_malloc0(PATH_MAX + 1); >> int64_t total_size; >> - BlockDriver *bdrv_qcow2; > Hmm - how hard would it be to get qemu to be clean under -Wshadow? This > is a case where you would have had to change this hunk during patch 1 if > -Wshadow were in effect. Well, I know I once found a bug which would have been spotted by -Wshadow; so in principle, I'm in favor of trying to enforce -Wshadow. On the other hand, I guess it may be really hard. We could try some time, but I don't want to have to run through all of qemu's code... Max
diff --git a/block.c b/block.c index 9d003bc..fbd7cb2 100644 --- a/block.c +++ b/block.c @@ -629,7 +629,7 @@ BlockDriver *bdrv_find_protocol(const char *filename, } if (!path_has_protocol(filename) || !allow_protocol_prefix) { - return bdrv_find_format("file"); + return bdrv_file; } p = strchr(filename, ':'); @@ -658,12 +658,7 @@ static int find_image_format(BlockDriverState *bs, const char *filename, /* Return the raw BlockDriver * to scsi-generic devices or empty drives */ if (bs->sg || !bdrv_is_inserted(bs) || bdrv_getlength(bs) == 0) { - drv = bdrv_find_format("raw"); - if (!drv) { - error_setg(errp, "Could not find raw image format"); - ret = -ENOENT; - } - *pdrv = drv; + *pdrv = bdrv_raw; return ret; } @@ -1293,7 +1288,6 @@ int bdrv_append_temp_snapshot(BlockDriverState *bs, int flags, Error **errp) /* TODO: extra byte is a hack to ensure MAX_PATH space on Windows. */ char *tmp_filename = g_malloc0(PATH_MAX + 1); int64_t total_size; - BlockDriver *bdrv_qcow2; QemuOpts *opts = NULL; QDict *snapshot_options; BlockDriverState *bs_snapshot; @@ -1318,7 +1312,6 @@ int bdrv_append_temp_snapshot(BlockDriverState *bs, int flags, Error **errp) goto out; } - bdrv_qcow2 = bdrv_find_format("qcow2"); opts = qemu_opts_create(bdrv_qcow2->create_opts, NULL, 0, &error_abort); qemu_opt_set_number(opts, BLOCK_OPT_SIZE, total_size);
We can always assume raw, file and qcow2 being available; so do not use bdrv_find_format() to locate their BlockDriver objects but statically reference the respective objects. Cc: qemu-stable@nongnu.org Signed-off-by: Max Reitz <mreitz@redhat.com> --- block.c | 11 ++--------- 1 file changed, 2 insertions(+), 9 deletions(-)