diff --git a/include/libvirt/libvirt-domain.h b/include/libvirt/libvirt-domain.h index 941e67aab1..f5420bca6e 100644 --- a/include/libvirt/libvirt-domain.h +++ b/include/libvirt/libvirt-domain.h @@ -4812,6 +4812,10 @@ typedef void (*virConnectDomainEventIOErrorCallback)(virConnectPtr conn, * - "enospc": The I/O error is known to be caused by an ENOSPC condition in * the host. Resizing the disk source to be larger will allow the * guest to be resumed as if nothing happened. + * - "message": The hypervisor reported a string description of the + * I/O error. The errors are usually logged into the + * domain log file or the last instance of the error + * string can be queried via virDomainGetMessages(). * * Since: 0.8.1 */ diff --git a/src/qemu/qemu_process.c b/src/qemu/qemu_process.c index e9342287ab..e7fcb38115 100644 --- a/src/qemu/qemu_process.c +++ b/src/qemu/qemu_process.c @@ -862,6 +862,8 @@ qemuProcessHandleIOError(qemuMonitor *mon G_GNUC_UNUSED, if (nospace) eventReason = "enospc"; + else if (reason) + eventReason = "message"; ioErrorEvent = virDomainEventIOErrorNewFromObj(vm, eventPath, eventAlias, action); ioErrorEvent2 = virDomainEventIOErrorReasonNewFromObj(vm, eventPath, eventAlias, action, eventReason);