* Juan Quintela (quint...@redhat.com) wrote: > "Dr. David Alan Gilbert" <dgilb...@redhat.com> wrote: > > * Juan Quintela (quint...@redhat.com) wrote: > >> If there is an error while loading a field, we should stop reading and > >> not continue with the rest of fields. And we should also set an error > >> in qemu_file. > >> > >> Signed-off-by: Juan Quintela <quint...@redhat.com> > >> --- > >> vmstate.c | 6 ++++++ > >> 1 file changed, 6 insertions(+) > >> > >> diff --git a/vmstate.c b/vmstate.c > >> index bfa34cc..bcf1cde 100644 > >> --- a/vmstate.c > >> +++ b/vmstate.c > >> @@ -74,7 +74,13 @@ int vmstate_load_state(QEMUFile *f, const > >> VMStateDescription *vmsd, > >> ret = field->info->get(f, addr, size); > >> > >> } > >> + if (ret >= 0) { > >> + ret = qemu_file_get_error(f); > >> + } > >> if (ret < 0) { > >> + if (!qemu_file_get_error(f)) { > >> + qemu_file_set_error(f, ret); > >> + } > > > > qemu_file_set_error already checks for an existing error, so > > you don't need that check. > > ret could already be less than zero and qemu_file error not being set > yet. Problem found during testing. That is the reason that I have to > "improve" the previous patch.
but you can do: if (ret < 0) { qemu_file_set_error(f, ret); There is no need for the extra qemu_file_get_error, since qemu_file_set_error does that internally. Dave > > Later, Juan. > > > > > > Dve > > > >> trace_vmstate_load_field_error(field->name, ret); > >> return ret; > >> } > >> -- > >> 1.9.0 > >> > >> > > -- > > Dr. David Alan Gilbert / dgilb...@redhat.com / Manchester, UK -- Dr. David Alan Gilbert / dgilb...@redhat.com / Manchester, UK