block: rename and alter bdrv_all_find_snapshot semantics

Currently bdrv_all_find_snapshot() will return 0 if it finds
a snapshot, -1 if an error occurs, or if it fails to find a
snapshot. New callers to be added want to distinguish between
the error scenario and failing to find a snapshot.

Rename it to bdrv_all_has_snapshot and make it return -1 on
error, 0 if no snapshot is found and 1 if snapshot is found.

Reviewed-by: Eric Blake <eblake@redhat.com>
Signed-off-by: Daniel P. Berrangé <berrange@redhat.com>
Message-Id: <20210204124834.774401-7-berrange@redhat.com>
Signed-off-by: Dr. David Alan Gilbert <dgilbert@redhat.com>
This commit is contained in:
Daniel P. Berrangé 2021-02-04 12:48:28 +00:00 committed by Dr. David Alan Gilbert
parent c22d644ca7
commit 3d3e9b1f66
5 changed files with 27 additions and 13 deletions

View file

@ -603,9 +603,9 @@ int bdrv_all_goto_snapshot(const char *name,
return 0;
}
int bdrv_all_find_snapshot(const char *name,
bool has_devices, strList *devices,
Error **errp)
int bdrv_all_has_snapshot(const char *name,
bool has_devices, strList *devices,
Error **errp)
{
g_autoptr(GList) bdrvs = NULL;
GList *iterbdrvs;
@ -627,15 +627,20 @@ int bdrv_all_find_snapshot(const char *name,
}
aio_context_release(ctx);
if (ret < 0) {
error_setg(errp, "Could not find snapshot '%s' on '%s'",
name, bdrv_get_device_or_node_name(bs));
return -1;
if (ret == -ENOENT) {
return 0;
} else {
error_setg_errno(errp, errno,
"Could not check snapshot '%s' on '%s'",
name, bdrv_get_device_or_node_name(bs));
return -1;
}
}
iterbdrvs = iterbdrvs->next;
}
return 0;
return 1;
}
int bdrv_all_create_snapshot(QEMUSnapshotInfo *sn,