mirror of
https://gitlab.com/libvirt/libvirt.git
synced 2024-12-23 14:15:28 +00:00
util: virstoragefile: Don't use "backingStore" directly
As a temporary step to allow killing of the "backingStore" field of struct virStorageFileMetadata the recursive metadata retrieval function will be converted not to use the field in the lookup process.
This commit is contained in:
parent
05bc536c83
commit
c366a1ef15
@ -1122,6 +1122,7 @@ virStorageFileGetMetadataRecurse(const char *path, const char *canonPath,
|
||||
int fd;
|
||||
int ret = -1;
|
||||
int backingFormat;
|
||||
char *backingPath = NULL;
|
||||
char *backingDirectory = NULL;
|
||||
|
||||
VIR_DEBUG("path=%s canonPath=%s dir=%s format=%d uid=%d gid=%d probe=%d",
|
||||
@ -1175,7 +1176,7 @@ virStorageFileGetMetadataRecurse(const char *path, const char *canonPath,
|
||||
if (virFindBackingFile(directory,
|
||||
meta->backingStoreRaw,
|
||||
&backingDirectory,
|
||||
&meta->backingStore) < 0) {
|
||||
&backingPath) < 0) {
|
||||
/* the backing file is (currently) unavailable, treat this
|
||||
* file as standalone:
|
||||
* backingStoreRaw is kept to mark broken image chains */
|
||||
@ -1185,17 +1186,20 @@ virStorageFileGetMetadataRecurse(const char *path, const char *canonPath,
|
||||
return 0;
|
||||
}
|
||||
} else {
|
||||
if (VIR_STRDUP(meta->backingStore, meta->backingStoreRaw) < 0)
|
||||
if (VIR_STRDUP(backingPath, meta->backingStoreRaw) < 0)
|
||||
return -1;
|
||||
}
|
||||
|
||||
if (VIR_STRDUP(meta->backingStore, backingPath) < 0)
|
||||
return -1;
|
||||
|
||||
if (backingFormat == VIR_STORAGE_FILE_AUTO && !allow_probe)
|
||||
backingFormat = VIR_STORAGE_FILE_RAW;
|
||||
else if (backingFormat == VIR_STORAGE_FILE_AUTO_SAFE)
|
||||
backingFormat = VIR_STORAGE_FILE_AUTO;
|
||||
if (VIR_ALLOC(backing) < 0 ||
|
||||
virStorageFileGetMetadataRecurse(meta->backingStoreRaw,
|
||||
meta->backingStore,
|
||||
backingPath,
|
||||
backingDirectory, backingFormat,
|
||||
uid, gid, allow_probe,
|
||||
cycle, backing) < 0) {
|
||||
@ -1206,7 +1210,9 @@ virStorageFileGetMetadataRecurse(const char *path, const char *canonPath,
|
||||
meta->backingMeta = backing;
|
||||
}
|
||||
}
|
||||
|
||||
VIR_FREE(backingDirectory);
|
||||
VIR_FREE(backingPath);
|
||||
return ret;
|
||||
}
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user