mirror of https://gitee.com/openkylin/libvirt.git
util: storagefile: Modify arguments of virStorageSourceNewFromBackingAbsolue
Return the parsed storage source via an pointer in arguments and return an integer from the function. Describe the semantics with a comment for the function and adjust callers to the new semantics. Signed-off-by: Peter Krempa <pkrempa@redhat.com> Reviewed-by: Ján Tomko <jtomko@redhat.com>
This commit is contained in:
parent
dddc552400
commit
5265743daa
|
@ -3635,22 +3635,32 @@ virStorageSourceParseBackingJSON(virStorageSourcePtr src,
|
|||
}
|
||||
|
||||
|
||||
virStorageSourcePtr
|
||||
virStorageSourceNewFromBackingAbsolute(const char *path)
|
||||
/**
|
||||
* virStorageSourceNewFromBackingAbsolute
|
||||
* @path: string representing absolute location of a storage source
|
||||
* @src: filled with virStorageSource object representing @path
|
||||
*
|
||||
* Returns 0 on success and fills @src or -1 on error and reports appropriate
|
||||
* error.
|
||||
*/
|
||||
int
|
||||
virStorageSourceNewFromBackingAbsolute(const char *path,
|
||||
virStorageSourcePtr *src)
|
||||
{
|
||||
const char *json;
|
||||
virStorageSourcePtr ret = NULL;
|
||||
int rc;
|
||||
VIR_AUTOUNREF(virStorageSourcePtr) def = NULL;
|
||||
|
||||
*src = NULL;
|
||||
|
||||
if (!(def = virStorageSourceNew()))
|
||||
return NULL;
|
||||
return -1;
|
||||
|
||||
if (virStorageIsFile(path)) {
|
||||
def->type = VIR_STORAGE_TYPE_FILE;
|
||||
|
||||
if (VIR_STRDUP(def->path, path) < 0)
|
||||
return NULL;
|
||||
return -1;
|
||||
} else {
|
||||
def->type = VIR_STORAGE_TYPE_NETWORK;
|
||||
|
||||
|
@ -3665,7 +3675,7 @@ virStorageSourceNewFromBackingAbsolute(const char *path)
|
|||
rc = virStorageSourceParseBackingColon(def, path);
|
||||
|
||||
if (rc < 0)
|
||||
return NULL;
|
||||
return -1;
|
||||
|
||||
virStorageSourceNetworkAssignDefaultPorts(def);
|
||||
|
||||
|
@ -3678,8 +3688,8 @@ virStorageSourceNewFromBackingAbsolute(const char *path)
|
|||
}
|
||||
}
|
||||
|
||||
VIR_STEAL_PTR(ret, def);
|
||||
return ret;
|
||||
VIR_STEAL_PTR(*src, def);
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
||||
|
@ -3704,14 +3714,15 @@ virStorageSourceNewFromBacking(virStorageSourcePtr parent,
|
|||
|
||||
*backing = NULL;
|
||||
|
||||
if (virStorageIsRelative(parent->backingStoreRaw))
|
||||
def = virStorageSourceNewFromBackingRelative(parent,
|
||||
parent->backingStoreRaw);
|
||||
else
|
||||
def = virStorageSourceNewFromBackingAbsolute(parent->backingStoreRaw);
|
||||
|
||||
if (!def)
|
||||
if (virStorageIsRelative(parent->backingStoreRaw)) {
|
||||
if (!(def = virStorageSourceNewFromBackingRelative(parent,
|
||||
parent->backingStoreRaw)))
|
||||
return -1;
|
||||
} else {
|
||||
if (virStorageSourceNewFromBackingAbsolute(parent->backingStoreRaw,
|
||||
&def) < 0)
|
||||
return -1;
|
||||
}
|
||||
|
||||
/* possibly update local type */
|
||||
if (def->type == VIR_STORAGE_TYPE_FILE) {
|
||||
|
|
|
@ -473,7 +473,8 @@ int virStorageFileGetRelativeBackingPath(virStorageSourcePtr from,
|
|||
|
||||
int virStorageFileCheckCompat(const char *compat);
|
||||
|
||||
virStorageSourcePtr virStorageSourceNewFromBackingAbsolute(const char *path);
|
||||
int virStorageSourceNewFromBackingAbsolute(const char *path,
|
||||
virStorageSourcePtr *src);
|
||||
|
||||
bool virStorageSourceIsRelative(virStorageSourcePtr src);
|
||||
|
||||
|
|
|
@ -85,7 +85,8 @@ testBackingXMLjsonXML(const void *args)
|
|||
if (virAsprintf(&protocolwrapper, "json:%s", propsstr) < 0)
|
||||
return -1;
|
||||
|
||||
if (!(jsonsrc = virStorageSourceNewFromBackingAbsolute(protocolwrapper))) {
|
||||
if (virStorageSourceNewFromBackingAbsolute(protocolwrapper,
|
||||
&jsonsrc) < 0) {
|
||||
fprintf(stderr, "failed to parse disk json\n");
|
||||
return -1;
|
||||
}
|
||||
|
|
|
@ -613,7 +613,7 @@ testBackingParse(const void *args)
|
|||
VIR_AUTOFREE(char *) xml = NULL;
|
||||
VIR_AUTOUNREF(virStorageSourcePtr) src = NULL;
|
||||
|
||||
if (!(src = virStorageSourceNewFromBackingAbsolute(data->backing))) {
|
||||
if (virStorageSourceNewFromBackingAbsolute(data->backing, &src) < 0) {
|
||||
if (!data->expect)
|
||||
return 0;
|
||||
else
|
||||
|
|
Loading…
Reference in New Issue