* Ross Lagerwall (ross.lagerw...@citrix.com) wrote: > QEMUFile uses buffered IO so when writing small amounts (such as the Xen > device state file), the actual write call and any errors that may occur > only happen as part of qemu_fclose(). Therefore, report IO errors when > saving the device state under Xen by checking the return value of > qemu_fclose(). > > Signed-off-by: Ross Lagerwall <ross.lagerw...@citrix.com>
Reviewed-by: Dr. David Alan Gilbert <dgilb...@redhat.com> > --- > migration/savevm.c | 3 +-- > 1 file changed, 1 insertion(+), 2 deletions(-) > > diff --git a/migration/savevm.c b/migration/savevm.c > index b7908f6..4b9d5be 100644 > --- a/migration/savevm.c > +++ b/migration/savevm.c > @@ -2267,8 +2267,7 @@ void qmp_xen_save_devices_state(const char *filename, > bool has_live, bool live, > qio_channel_set_name(QIO_CHANNEL(ioc), "migration-xen-save-state"); > f = qemu_fopen_channel_output(QIO_CHANNEL(ioc)); > ret = qemu_save_device_state(f); > - qemu_fclose(f); > - if (ret < 0) { > + if (ret < 0 || qemu_fclose(f) < 0) { > error_setg(errp, QERR_IO_ERROR); > } else { > /* libxl calls the QMP command "stop" before calling > -- > 2.9.5 > -- Dr. David Alan Gilbert / dgilb...@redhat.com / Manchester, UK