Commit 850810d0 authored by Justin M. Forbes's avatar Justin M. Forbes Committed by Anthony Liguori
Browse files

Improve error reporting on file access



By making the error reporting include strerror(errno), it gives the user
a bit more indication as to why qemu failed.  This is particularly
important for people running qemu as a non root user.

Signed-off-by: default avatarJustin M. Forbes <jforbes@redhat.com>
Signed-off-by: default avatarAnthony Liguori <aliguori@us.ibm.com>
parent 6c098407
Loading
Loading
Loading
Loading
+6 −6
Original line number Diff line number Diff line
@@ -844,8 +844,8 @@ static void load_linux(void *fw_cfg,
    if (!f || !(kernel_size = get_file_size(f)) ||
	fread(header, 1, MIN(ARRAY_SIZE(header), kernel_size), f) !=
	MIN(ARRAY_SIZE(header), kernel_size)) {
	fprintf(stderr, "qemu: could not load kernel '%s'\n",
		kernel_filename);
	fprintf(stderr, "qemu: could not load kernel '%s': %s\n",
		kernel_filename, strerror(errno));
	exit(1);
    }

@@ -950,8 +950,8 @@ static void load_linux(void *fw_cfg,

	fi = fopen(initrd_filename, "rb");
	if (!fi) {
	    fprintf(stderr, "qemu: could not load initial ram disk '%s'\n",
		    initrd_filename);
	    fprintf(stderr, "qemu: could not load initial ram disk '%s': %s\n",
		    initrd_filename, strerror(errno));
	    exit(1);
	}

@@ -959,8 +959,8 @@ static void load_linux(void *fw_cfg,
	initrd_addr = (initrd_max-initrd_size) & ~4095;

	if (!fread_targphys_ok(initrd_addr, initrd_size, fi)) {
	    fprintf(stderr, "qemu: read error on initial ram disk '%s'\n",
		    initrd_filename);
	    fprintf(stderr, "qemu: read error on initial ram disk '%s': %s\n",
		    initrd_filename, strerror(errno));
	    exit(1);
	}
	fclose(fi);
+10 −10
Original line number Diff line number Diff line
@@ -2328,8 +2328,8 @@ DriveInfo *drive_init(QemuOpts *opts, void *opaque,
    }

    if (bdrv_open2(dinfo->bdrv, file, bdrv_flags, drv) < 0) {
        fprintf(stderr, "qemu: could not open disk image %s\n",
                        file);
        fprintf(stderr, "qemu: could not open disk image %s: %s\n",
                        file, strerror(errno));
        return NULL;
    }

@@ -5566,7 +5566,7 @@ int main(int argc, char **argv, char **envp)
            if (len != 1)
                exit(1);
            else if (status == 1) {
                fprintf(stderr, "Could not acquire pidfile\n");
                fprintf(stderr, "Could not acquire pidfile: %s\n", strerror(errno));
                exit(1);
            } else
                exit(0);
@@ -5593,7 +5593,7 @@ int main(int argc, char **argv, char **envp)
            uint8_t status = 1;
            write(fds[1], &status, 1);
        } else
            fprintf(stderr, "Could not acquire pid file\n");
            fprintf(stderr, "Could not acquire pid file: %s\n", strerror(errno));
        exit(1);
    }
#endif
@@ -5777,8 +5777,8 @@ int main(int argc, char **argv, char **envp)
            snprintf(label, sizeof(label), "serial%d", i);
            serial_hds[i] = qemu_chr_open(label, devname, NULL);
            if (!serial_hds[i]) {
                fprintf(stderr, "qemu: could not open serial device '%s'\n",
                        devname);
                fprintf(stderr, "qemu: could not open serial device '%s': %s\n",
                        devname, strerror(errno));
                exit(1);
            }
        }
@@ -5791,8 +5791,8 @@ int main(int argc, char **argv, char **envp)
            snprintf(label, sizeof(label), "parallel%d", i);
            parallel_hds[i] = qemu_chr_open(label, devname, NULL);
            if (!parallel_hds[i]) {
                fprintf(stderr, "qemu: could not open parallel device '%s'\n",
                        devname);
                fprintf(stderr, "qemu: could not open parallel device '%s': %s\n",
                        devname, strerror(errno));
                exit(1);
            }
        }
@@ -5805,8 +5805,8 @@ int main(int argc, char **argv, char **envp)
            snprintf(label, sizeof(label), "virtcon%d", i);
            virtcon_hds[i] = qemu_chr_open(label, devname, NULL);
            if (!virtcon_hds[i]) {
                fprintf(stderr, "qemu: could not open virtio console '%s'\n",
                        devname);
                fprintf(stderr, "qemu: could not open virtio console '%s': %s\n",
                        devname, strerror(errno));
                exit(1);
            }
        }