mirror of
https://github.com/Motorhead1991/qemu.git
synced 2025-08-03 15:53:54 -06:00
block: Avoid bdrv_get_geometry() where errors should be detected
bdrv_get_geometry() hides errors. Use bdrv_nb_sectors() or bdrv_getlength() instead where that's obviously inappropriate. Signed-off-by: Markus Armbruster <armbru@redhat.com> Reviewed-by: Eric Blake <eblake@redhat.com> Reviewed-by: Max Reitz <mreitz@redhat.com> Reviewed-by: Benoit Canet <benoit@irqsave.net> Signed-off-by: Stefan Hajnoczi <stefanha@redhat.com>
This commit is contained in:
parent
d739f1c410
commit
52bf1e722d
3 changed files with 68 additions and 21 deletions
11
block.c
11
block.c
|
@ -5595,7 +5595,7 @@ void bdrv_img_create(const char *filename, const char *fmt,
|
|||
if (size == -1) {
|
||||
if (backing_file) {
|
||||
BlockDriverState *bs;
|
||||
uint64_t size;
|
||||
int64_t size;
|
||||
int back_flags;
|
||||
|
||||
/* backing files always opened read-only */
|
||||
|
@ -5613,8 +5613,13 @@ void bdrv_img_create(const char *filename, const char *fmt,
|
|||
local_err = NULL;
|
||||
goto out;
|
||||
}
|
||||
bdrv_get_geometry(bs, &size);
|
||||
size *= 512;
|
||||
size = bdrv_getlength(bs);
|
||||
if (size < 0) {
|
||||
error_setg_errno(errp, -size, "Could not get size of '%s'",
|
||||
backing_file);
|
||||
bdrv_unref(bs);
|
||||
goto out;
|
||||
}
|
||||
|
||||
qemu_opt_set_number(opts, BLOCK_OPT_SIZE, size);
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue