mirror of
https://git.proxmox.com/git/qemu
synced 2025-06-15 18:00:47 +00:00
Make error handling more consistent in img_create() and img_resize()
Signed-off-by: Jes Sorensen <Jes.Sorensen@redhat.com> Signed-off-by: Kevin Wolf <kwolf@redhat.com>
This commit is contained in:
parent
ef87394c08
commit
2a81998a1a
18
qemu-img.c
18
qemu-img.c
@ -349,13 +349,15 @@ static int img_create(int argc, char **argv)
|
|||||||
drv = bdrv_find_format(fmt);
|
drv = bdrv_find_format(fmt);
|
||||||
if (!drv) {
|
if (!drv) {
|
||||||
error("Unknown file format '%s'", fmt);
|
error("Unknown file format '%s'", fmt);
|
||||||
return 1;
|
ret = -1;
|
||||||
|
goto out;
|
||||||
}
|
}
|
||||||
|
|
||||||
proto_drv = bdrv_find_protocol(filename);
|
proto_drv = bdrv_find_protocol(filename);
|
||||||
if (!proto_drv) {
|
if (!proto_drv) {
|
||||||
error("Unknown protocol '%s'", filename);
|
error("Unknown protocol '%s'", filename);
|
||||||
return 1;
|
ret = -1;
|
||||||
|
goto out;
|
||||||
}
|
}
|
||||||
|
|
||||||
create_options = append_option_parameters(create_options,
|
create_options = append_option_parameters(create_options,
|
||||||
@ -1492,7 +1494,7 @@ static int img_resize(int argc, char **argv)
|
|||||||
int c, ret, relative;
|
int c, ret, relative;
|
||||||
const char *filename, *fmt, *size;
|
const char *filename, *fmt, *size;
|
||||||
int64_t n, total_size;
|
int64_t n, total_size;
|
||||||
BlockDriverState *bs;
|
BlockDriverState *bs = NULL;
|
||||||
QEMUOptionParameter *param;
|
QEMUOptionParameter *param;
|
||||||
QEMUOptionParameter resize_options[] = {
|
QEMUOptionParameter resize_options[] = {
|
||||||
{
|
{
|
||||||
@ -1544,14 +1546,16 @@ static int img_resize(int argc, char **argv)
|
|||||||
param = parse_option_parameters("", resize_options, NULL);
|
param = parse_option_parameters("", resize_options, NULL);
|
||||||
if (set_option_parameter(param, BLOCK_OPT_SIZE, size)) {
|
if (set_option_parameter(param, BLOCK_OPT_SIZE, size)) {
|
||||||
/* Error message already printed when size parsing fails */
|
/* Error message already printed when size parsing fails */
|
||||||
exit(1);
|
ret = -1;
|
||||||
|
goto out;
|
||||||
}
|
}
|
||||||
n = get_option_parameter(param, BLOCK_OPT_SIZE)->value.n;
|
n = get_option_parameter(param, BLOCK_OPT_SIZE)->value.n;
|
||||||
free_option_parameters(param);
|
free_option_parameters(param);
|
||||||
|
|
||||||
bs = bdrv_new_open(filename, fmt, BDRV_O_FLAGS | BDRV_O_RDWR);
|
bs = bdrv_new_open(filename, fmt, BDRV_O_FLAGS | BDRV_O_RDWR);
|
||||||
if (!bs) {
|
if (!bs) {
|
||||||
return 1;
|
ret = -1;
|
||||||
|
goto out;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (relative) {
|
if (relative) {
|
||||||
@ -1581,7 +1585,9 @@ static int img_resize(int argc, char **argv)
|
|||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
out:
|
out:
|
||||||
bdrv_delete(bs);
|
if (bs) {
|
||||||
|
bdrv_delete(bs);
|
||||||
|
}
|
||||||
if (ret) {
|
if (ret) {
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user