mirror of
https://github.com/mii443/qemu.git
synced 2025-12-16 17:18:49 +00:00
block: Error parameter for open functions
Add an Error ** parameter to bdrv_open, bdrv_file_open and associated functions to allow more specific error messages. Signed-off-by: Max Reitz <mreitz@redhat.com>
This commit is contained in:
14
qemu-io.c
14
qemu-io.c
@@ -46,21 +46,27 @@ static const cmdinfo_t close_cmd = {
|
||||
|
||||
static int openfile(char *name, int flags, int growable)
|
||||
{
|
||||
Error *local_err = NULL;
|
||||
|
||||
if (qemuio_bs) {
|
||||
fprintf(stderr, "file open already, try 'help close'\n");
|
||||
return 1;
|
||||
}
|
||||
|
||||
if (growable) {
|
||||
if (bdrv_file_open(&qemuio_bs, name, NULL, flags)) {
|
||||
fprintf(stderr, "%s: can't open device %s\n", progname, name);
|
||||
if (bdrv_file_open(&qemuio_bs, name, NULL, flags, &local_err)) {
|
||||
fprintf(stderr, "%s: can't open device %s: %s\n", progname, name,
|
||||
error_get_pretty(local_err));
|
||||
error_free(local_err);
|
||||
return 1;
|
||||
}
|
||||
} else {
|
||||
qemuio_bs = bdrv_new("hda");
|
||||
|
||||
if (bdrv_open(qemuio_bs, name, NULL, flags, NULL) < 0) {
|
||||
fprintf(stderr, "%s: can't open device %s\n", progname, name);
|
||||
if (bdrv_open(qemuio_bs, name, NULL, flags, NULL, &local_err) < 0) {
|
||||
fprintf(stderr, "%s: can't open device %s: %s\n", progname, name,
|
||||
error_get_pretty(local_err));
|
||||
error_free(local_err);
|
||||
bdrv_unref(qemuio_bs);
|
||||
qemuio_bs = NULL;
|
||||
return 1;
|
||||
|
||||
Reference in New Issue
Block a user