libvirt/src/qemu
Eric Blake e9392e48d4 qemu: support nospace reason in io error event
Aeons ago (commit 34dcbbb4, v0.8.2), we added a new libvirt event
(VIR_DOMAIN_EVENT_ID_IO_ERROR_REASON) in order to tell the user WHY
the guest halted.  This is because at least VDSM wants to react
differently to ENOSPC events (resize the lvm partition to be larger,
and resume the guest as if nothing had happened) from all other events
(I/O is hosed, throw up our hands and flag things as broken).  At the
time this was done, downstream RHEL qemu added a vendor extension
'__com.redhat_reason', which would be exactly one of these strings:
"enospc", "eperm", "eio", and "eother".  In our stupidity, we exposed
those exact strings to clients, rather than an enum, and we also
return "" if we did not have access to a reason (which was the case
for upstream qemu).

Fast forward to now: upstream qemu commit c7c2ff0c (will be qemu 2.2)
FINALLY adds a 'nospace' boolean, after discussion with multiple
projects determined that VDSM really doesn't care about distinction
between any other error types.  So this patch converts 'nospace' into
the string "enospc" for compatibility with RHEL clients that were
already used to the downstream extension, while leaving the reason
blank for all other cases (no change from the status quo).

See also https://bugzilla.redhat.com/show_bug.cgi?id=1119784

* src/qemu/qemu_monitor_json.c (qewmuMonitorJSONHandleIOError):
Parse reason field from modern qemu.
* include/libvirt/libvirt.h.in
(virConnectDomainEventIOErrorReasonCallback): Document it.

Signed-off-by: Eric Blake <eblake@redhat.com>
2014-10-03 12:43:53 -06:00
..
libvirtd_qemu.aug qemu: Automatically create NVRAM store 2014-09-10 09:38:07 +02:00
MIGRATION.txt
qemu_agent.c qemu_agent: Resolve Coverity RESOURCE_LEAK 2014-08-28 08:12:16 -04:00
qemu_agent.h
qemu_capabilities.c qemu: remove capabilities.monitor.sock when done 2014-09-26 19:01:16 +02:00
qemu_capabilities.h qemu: Add RDMA migration capabilities 2014-09-23 08:11:49 +02:00
qemu_cgroup.c qemu: use systemd's TerminateMachine to kill all processes 2014-10-01 20:17:46 +02:00
qemu_cgroup.h qemu: use systemd's TerminateMachine to kill all processes 2014-10-01 20:17:46 +02:00
qemu_command.c qemu: Don't compare CPU against host for TCG 2014-10-03 11:30:29 -04:00
qemu_command.h Move the FIPS detection from capabilities 2014-09-19 09:08:23 +02:00
qemu_conf.c qemu: fix crash with shared disks 2014-09-18 09:05:21 +02:00
qemu_conf.h qemu: fix crash with shared disks 2014-09-18 09:05:21 +02:00
qemu_domain.c qemu: Always re-detect backing chain 2014-09-26 09:35:33 +02:00
qemu_domain.h qemu: Report better errors from broken backing chains 2014-09-24 10:18:47 +02:00
qemu_driver.c qemu: Improve domainSetTime error info report 2014-10-03 15:48:07 +02:00
qemu_driver.h
qemu_hostdev.c
qemu_hostdev.h
qemu_hotplug.c qemu: Report better errors from broken backing chains 2014-09-24 10:18:47 +02:00
qemu_hotplug.h qemu: hotplug: Format proper source string for cdrom media change 2014-08-20 09:28:04 +02:00
qemu_hotplugpriv.h
qemu_migration.c Don't verify CPU features with host-passthrough 2014-09-30 10:47:02 +02:00
qemu_migration.h qemu: Memory pre-pinning support for RDMA migration 2014-09-23 08:11:50 +02:00
qemu_monitor_json.c qemu: support nospace reason in io error event 2014-10-03 12:43:53 -06:00
qemu_monitor_json.h qemu: monitor: Add helper function to fill physical/virtual image size 2014-10-01 10:58:33 +02:00
qemu_monitor_text.c maint: clean up _virDomainMemoryStat 2014-09-17 11:28:48 -06:00
qemu_monitor_text.h
qemu_monitor.c maint: Prohibit "devname" by a syntax check rules 2014-10-01 16:39:01 +02:00
qemu_monitor.h maint: Prohibit "devname" by a syntax check rules 2014-10-01 16:39:01 +02:00
qemu_process.c qemu: use systemd's TerminateMachine to kill all processes 2014-10-01 20:17:46 +02:00
qemu_process.h qemu: Tidy up job handling during live migration 2014-08-14 12:12:42 +02:00
qemu_processpriv.h
qemu.conf qemu: RDMA migration support 2014-09-23 08:11:50 +02:00
test_libvirtd_qemu.aug.in qemu: Automatically create NVRAM store 2014-09-10 09:38:07 +02:00
THREADS.txt