[PATCH v2 3/6] migration: stop returning errno from load_snapshot()

Daniel P. Berrangé posted 6 patches 5 years, 6 months ago
There is a newer version of this series
[PATCH v2 3/6] migration: stop returning errno from load_snapshot()
Posted by Daniel P. Berrangé 5 years, 6 months ago
None of the callers care about the errno value since there is a full
Error object populated. This gives consistency with save_snapshot()
which already just returns -1.

Signed-off-by: Daniel P. Berrangé <berrange@redhat.com>
---
 migration/savevm.c | 17 ++++++++---------
 1 file changed, 8 insertions(+), 9 deletions(-)

diff --git a/migration/savevm.c b/migration/savevm.c
index 19259ef7c0..6c4d80fc5a 100644
--- a/migration/savevm.c
+++ b/migration/savevm.c
@@ -2843,20 +2843,20 @@ int load_snapshot(const char *name, Error **errp)
     if (!replay_can_snapshot()) {
         error_setg(errp, "Record/replay does not allow loading snapshot "
                    "right now. Try once more later.");
-        return -EINVAL;
+        return -1;
     }
 
     if (!bdrv_all_can_snapshot(errp)) {
-        return -ENOTSUP;
+        return -1;
     }
     ret = bdrv_all_find_snapshot(name, errp);
     if (ret < 0) {
-        return ret;
+        return -1;
     }
 
     bs_vm_state = bdrv_all_find_vmstate_bs(errp);
     if (!bs_vm_state) {
-        return -ENOTSUP;
+        return -1;
     }
     aio_context = bdrv_get_aio_context(bs_vm_state);
 
@@ -2865,11 +2865,11 @@ int load_snapshot(const char *name, Error **errp)
     ret = bdrv_snapshot_find(bs_vm_state, &sn, name);
     aio_context_release(aio_context);
     if (ret < 0) {
-        return ret;
+        return -1;
     } else if (sn.vm_state_size == 0) {
         error_setg(errp, "This is a disk-only snapshot. Revert to it "
                    " offline using qemu-img");
-        return -EINVAL;
+        return -1;
     }
 
     /* Flush all IO requests so they don't interfere with the new state.  */
@@ -2884,7 +2884,6 @@ int load_snapshot(const char *name, Error **errp)
     f = qemu_fopen_bdrv(bs_vm_state, 0);
     if (!f) {
         error_setg(errp, "Could not open VM state file");
-        ret = -EINVAL;
         goto err_drain;
     }
 
@@ -2900,14 +2899,14 @@ int load_snapshot(const char *name, Error **errp)
 
     if (ret < 0) {
         error_setg(errp, "Error %d while loading VM state", ret);
-        return ret;
+        return -1;
     }
 
     return 0;
 
 err_drain:
     bdrv_drain_all_end();
-    return ret;
+    return -1;
 }
 
 void vmstate_register_ram(MemoryRegion *mr, DeviceState *dev)
-- 
2.26.2


Re: [PATCH v2 3/6] migration: stop returning errno from load_snapshot()
Posted by Dr. David Alan Gilbert 5 years, 6 months ago
* Daniel P. Berrangé (berrange@redhat.com) wrote:
> None of the callers care about the errno value since there is a full
> Error object populated. This gives consistency with save_snapshot()
> which already just returns -1.
> 
> Signed-off-by: Daniel P. Berrangé <berrange@redhat.com>

Reviewed-by: Dr. David Alan Gilbert <dgilbert@redhat.com>

(Note this is true of snapshots only; in postcopy there are places we
care about the errno for recovery)

> ---
>  migration/savevm.c | 17 ++++++++---------
>  1 file changed, 8 insertions(+), 9 deletions(-)
> 
> diff --git a/migration/savevm.c b/migration/savevm.c
> index 19259ef7c0..6c4d80fc5a 100644
> --- a/migration/savevm.c
> +++ b/migration/savevm.c
> @@ -2843,20 +2843,20 @@ int load_snapshot(const char *name, Error **errp)
>      if (!replay_can_snapshot()) {
>          error_setg(errp, "Record/replay does not allow loading snapshot "
>                     "right now. Try once more later.");
> -        return -EINVAL;
> +        return -1;
>      }
>  
>      if (!bdrv_all_can_snapshot(errp)) {
> -        return -ENOTSUP;
> +        return -1;
>      }
>      ret = bdrv_all_find_snapshot(name, errp);
>      if (ret < 0) {
> -        return ret;
> +        return -1;
>      }
>  
>      bs_vm_state = bdrv_all_find_vmstate_bs(errp);
>      if (!bs_vm_state) {
> -        return -ENOTSUP;
> +        return -1;
>      }
>      aio_context = bdrv_get_aio_context(bs_vm_state);
>  
> @@ -2865,11 +2865,11 @@ int load_snapshot(const char *name, Error **errp)
>      ret = bdrv_snapshot_find(bs_vm_state, &sn, name);
>      aio_context_release(aio_context);
>      if (ret < 0) {
> -        return ret;
> +        return -1;
>      } else if (sn.vm_state_size == 0) {
>          error_setg(errp, "This is a disk-only snapshot. Revert to it "
>                     " offline using qemu-img");
> -        return -EINVAL;
> +        return -1;
>      }
>  
>      /* Flush all IO requests so they don't interfere with the new state.  */
> @@ -2884,7 +2884,6 @@ int load_snapshot(const char *name, Error **errp)
>      f = qemu_fopen_bdrv(bs_vm_state, 0);
>      if (!f) {
>          error_setg(errp, "Could not open VM state file");
> -        ret = -EINVAL;
>          goto err_drain;
>      }
>  
> @@ -2900,14 +2899,14 @@ int load_snapshot(const char *name, Error **errp)
>  
>      if (ret < 0) {
>          error_setg(errp, "Error %d while loading VM state", ret);
> -        return ret;
> +        return -1;
>      }
>  
>      return 0;
>  
>  err_drain:
>      bdrv_drain_all_end();
> -    return ret;
> +    return -1;
>  }
>  
>  void vmstate_register_ram(MemoryRegion *mr, DeviceState *dev)
> -- 
> 2.26.2
> 
-- 
Dr. David Alan Gilbert / dgilbert@redhat.com / Manchester, UK