The convention in qemu-file.c is to return a negative value on
error.

The only place that could use qemu_file_set_error() to store a
positive value to f->last_error was vmstate_save() which has been
fixed in the previous patch.

bdrv_inactivate_all() already returns a negative value on error.

Document that qemu_file_set_error() needs -errno and alter the callers
to check ret < 0.

Signed-off-by: Fabiano Rosas <faro...@suse.de>
---
 migration/qemu-file.c | 2 ++
 migration/savevm.c    | 6 +++---
 2 files changed, 5 insertions(+), 3 deletions(-)

diff --git a/migration/qemu-file.c b/migration/qemu-file.c
index acc282654a..8276bac248 100644
--- a/migration/qemu-file.c
+++ b/migration/qemu-file.c
@@ -222,6 +222,8 @@ int qemu_file_get_error(QEMUFile *f)
 
 /*
  * Set the last error for stream f
+ *
+ * The error ('ret') should be in -errno format.
  */
 void qemu_file_set_error(QEMUFile *f, int ret)
 {
diff --git a/migration/savevm.c b/migration/savevm.c
index 95c2abf47c..f3c303ab74 100644
--- a/migration/savevm.c
+++ b/migration/savevm.c
@@ -1249,7 +1249,7 @@ void qemu_savevm_state_setup(QEMUFile *f)
     QTAILQ_FOREACH(se, &savevm_state.handlers, entry) {
         if (se->vmsd && se->vmsd->early_setup) {
             ret = vmstate_save(f, se, ms->vmdesc);
-            if (ret) {
+            if (ret < 0) {
                 qemu_file_set_error(f, ret);
                 break;
             }
@@ -1464,7 +1464,7 @@ int 
qemu_savevm_state_complete_precopy_non_iterable(QEMUFile *f,
         }
 
         ret = vmstate_save(f, se, vmdesc);
-        if (ret) {
+        if (ret < 0) {
             qemu_file_set_error(f, ret);
             return ret;
         }
@@ -1474,7 +1474,7 @@ int 
qemu_savevm_state_complete_precopy_non_iterable(QEMUFile *f,
         /* Inactivate before sending QEMU_VM_EOF so that the
          * bdrv_activate_all() on the other end won't fail. */
         ret = bdrv_inactivate_all();
-        if (ret) {
+        if (ret < 0) {
             error_report("%s: bdrv_inactivate_all() failed (%d)",
                          __func__, ret);
             qemu_file_set_error(f, ret);
-- 
2.35.3


Reply via email to