As for the previous patch, this change is needed to achieve compatibility with all the existing code, where we expect a fully qualified path of local files to be present. --- src/util/virstoragefile.c | 18 +++++++-------- src/util/virstoragefile.h | 2 +- tests/virstoragetest.c | 56 +++++++++++++++++++++++------------------------ 3 files changed, 38 insertions(+), 38 deletions(-) diff --git a/src/util/virstoragefile.c b/src/util/virstoragefile.c index f11dd36..d4d8427 100644 --- a/src/util/virstoragefile.c +++ b/src/util/virstoragefile.c @@ -948,7 +948,7 @@ virStorageFileMetadataNew(const char *path, if (VIR_STRDUP(ret->relPath, path) < 0) goto error; - if (!(ret->canonPath = canonicalize_file_name(path))) { + if (!(ret->path = canonicalize_file_name(path))) { virReportSystemError(errno, _("unable to resolve '%s'"), path); goto error; } @@ -1042,7 +1042,7 @@ virStorageFileGetMetadataFromFDInternal(virStorageFileMetadataPtr meta, * file; therefore, no inclusion loop is possible, and we * don't need canonName or relDir. */ VIR_FREE(meta->relDir); - VIR_FREE(meta->canonPath); + VIR_FREE(meta->path); meta->type = VIR_STORAGE_TYPE_DIR; meta->format = VIR_STORAGE_FILE_DIR; ret = 0; @@ -1134,7 +1134,7 @@ virStorageFileGetMetadataRecurse(const char *path, const char *canonPath, if (virStorageIsFile(path)) { if (VIR_STRDUP(meta->relPath, path) < 0) return -1; - if (VIR_STRDUP(meta->canonPath, canonPath) < 0) + if (VIR_STRDUP(meta->path, canonPath) < 0) return -1; if (VIR_STRDUP(meta->relDir, directory) < 0) return -1; @@ -1155,7 +1155,7 @@ virStorageFileGetMetadataRecurse(const char *path, const char *canonPath, * allow for non-raw images. */ if (VIR_STRDUP(meta->relPath, path) < 0) return -1; - if (VIR_STRDUP(meta->canonPath, path) < 0) + if (VIR_STRDUP(meta->path, path) < 0) return -1; meta->type = VIR_STORAGE_TYPE_NETWORK; meta->format = VIR_STORAGE_FILE_RAW; @@ -1317,7 +1317,7 @@ virStorageFileFreeMetadata(virStorageFileMetadata *meta) return; VIR_FREE(meta->relPath); - VIR_FREE(meta->canonPath); + VIR_FREE(meta->path); VIR_FREE(meta->relDir); virStorageFileFreeMetadata(meta->backingMeta); @@ -1534,7 +1534,7 @@ virStorageFileChainLookup(virStorageFileMetadataPtr chain, const char *name, virStorageFileMetadataPtr *meta, const char **parent) { - const char *start = chain->canonPath; + const char *start = chain->path; const char *tmp; const char *parentDir = "."; bool nameIsFile = virStorageIsFile(name); @@ -1553,14 +1553,14 @@ virStorageFileChainLookup(virStorageFileMetadataPtr chain, if (nameIsFile && (chain->type == VIR_STORAGE_TYPE_FILE || chain->type == VIR_STORAGE_TYPE_BLOCK)) { int result = virFileRelLinkPointsTo(parentDir, name, - chain->canonPath); + chain->path); if (result < 0) goto error; if (result > 0) break; } } - *parent = chain->canonPath; + *parent = chain->path; parentDir = chain->relDir; chain = chain->backingMeta; } @@ -1568,7 +1568,7 @@ virStorageFileChainLookup(virStorageFileMetadataPtr chain, goto error; if (meta) *meta = chain; - return chain->canonPath; + return chain->path; error: if (name) diff --git a/src/util/virstoragefile.h b/src/util/virstoragefile.h index 867214e..3f072b6 100644 --- a/src/util/virstoragefile.h +++ b/src/util/virstoragefile.h @@ -124,7 +124,7 @@ struct _virStorageFileMetadata { char *relPath; /* Canonical name of the current file, used to detect loops in the * backing store chain. */ - char *canonPath; + char *path; /* Directory to start from if backingStoreRaw is a relative file * name. */ char *relDir; diff --git a/tests/virstoragetest.c b/tests/virstoragetest.c index b0de438..dabaa99 100644 --- a/tests/virstoragetest.c +++ b/tests/virstoragetest.c @@ -237,7 +237,7 @@ struct _testFileData bool expEncrypted; const char *pathRel; const char *pathAbs; - const char *canonPath; + const char *path; const char *relDirRel; const char *relDirAbs; int type; @@ -323,24 +323,24 @@ testStorageChain(const void *args) : data->files[i]->relDirRel; if (virAsprintf(&expect, "store:%s\nraw:%s\nother:%lld %d\n" - "relPath:%s\ncanon:%s\nrelDir:%s\ntype:%d %d\n", + "relPath:%s\npath:%s\nrelDir:%s\ntype:%d %d\n", NULLSTR(data->files[i]->expBackingStore), NULLSTR(data->files[i]->expBackingStoreRaw), data->files[i]->expCapacity, data->files[i]->expEncrypted, NULLSTR(expPath), - NULLSTR(data->files[i]->canonPath), + NULLSTR(data->files[i]->path), NULLSTR(expRelDir), data->files[i]->type, data->files[i]->format) < 0 || virAsprintf(&actual, "store:%s\nraw:%s\nother:%lld %d\n" - "relPath:%s\ncanon:%s\nrelDir:%s\ntype:%d %d\n", + "relPath:%s\npath:%s\nrelDir:%s\ntype:%d %d\n", NULLSTR(elt->backingStore), NULLSTR(elt->backingStoreRaw), elt->capacity, !!elt->encryption, NULLSTR(elt->relPath), - NULLSTR(elt->canonPath), + NULLSTR(elt->path), NULLSTR(elt->relDir), elt->type, elt->format) < 0) { VIR_FREE(expect); @@ -491,7 +491,7 @@ mymain(void) testFileData raw = { .pathRel = "raw", .pathAbs = canonraw, - .canonPath = canonraw, + .path = canonraw, .relDirRel = ".", .relDirAbs = datadir, .type = VIR_STORAGE_TYPE_FILE, @@ -516,7 +516,7 @@ mymain(void) .expCapacity = 1024, .pathRel = "qcow2", .pathAbs = canonqcow2, - .canonPath = canonqcow2, + .path = canonqcow2, .relDirRel = ".", .relDirAbs = datadir, .type = VIR_STORAGE_TYPE_FILE, @@ -525,7 +525,7 @@ mymain(void) testFileData qcow2_as_raw = { .pathRel = "qcow2", .pathAbs = canonqcow2, - .canonPath = canonqcow2, + .path = canonqcow2, .relDirRel = ".", .relDirAbs = datadir, .type = VIR_STORAGE_TYPE_FILE, @@ -572,7 +572,7 @@ mymain(void) .expCapacity = 1024, .pathRel = "wrap", .pathAbs = abswrap, - .canonPath = canonwrap, + .path = canonwrap, .relDirRel = ".", .relDirAbs = datadir, .type = VIR_STORAGE_TYPE_FILE, @@ -608,7 +608,7 @@ mymain(void) .expCapacity = 1024, .pathRel = "wrap", .pathAbs = abswrap, - .canonPath = canonwrap, + .path = canonwrap, .relDirRel = ".", .relDirAbs = datadir, .type = VIR_STORAGE_TYPE_FILE, @@ -667,7 +667,7 @@ mymain(void) testFileData nbd = { .pathRel = "nbd:example.org:6000", .pathAbs = "nbd:example.org:6000", - .canonPath = "nbd:example.org:6000", + .path = "nbd:example.org:6000", .type = VIR_STORAGE_TYPE_NETWORK, .format = VIR_STORAGE_FILE_RAW, }; @@ -684,7 +684,7 @@ mymain(void) .expCapacity = 1024, .pathRel = "qed", .pathAbs = absqed, - .canonPath = canonqed, + .path = canonqed, .relDirRel = ".", .relDirAbs = datadir, .type = VIR_STORAGE_TYPE_FILE, @@ -693,7 +693,7 @@ mymain(void) testFileData qed_as_raw = { .pathRel = "qed", .pathAbs = absqed, - .canonPath = canonqed, + .path = canonqed, .relDirRel = ".", .relDirAbs = datadir, .type = VIR_STORAGE_TYPE_FILE, @@ -746,7 +746,7 @@ mymain(void) .expCapacity = 1024, .pathRel = "../sub/link1", .pathAbs = "../sub/link1", - .canonPath = canonqcow2, + .path = canonqcow2, .relDirRel = "sub/../sub", .relDirAbs = datadir "/sub/../sub", .type = VIR_STORAGE_TYPE_FILE, @@ -758,7 +758,7 @@ mymain(void) .expCapacity = 1024, .pathRel = "sub/link2", .pathAbs = abslink2, - .canonPath = canonwrap, + .path = canonwrap, .relDirRel = "sub", .relDirAbs = datadir "/sub", .type = VIR_STORAGE_TYPE_FILE, @@ -839,12 +839,12 @@ mymain(void) } while (0) TEST_LOOKUP(0, "bogus", NULL, NULL, NULL); - TEST_LOOKUP(1, "wrap", chain->canonPath, chain, NULL); - TEST_LOOKUP(2, abswrap, chain->canonPath, chain, NULL); + TEST_LOOKUP(1, "wrap", chain->path, chain, NULL); + TEST_LOOKUP(2, abswrap, chain->path, chain, NULL); TEST_LOOKUP(3, "qcow2", chain->backingStore, chain->backingMeta, - chain->canonPath); + chain->path); TEST_LOOKUP(4, absqcow2, chain->backingStore, chain->backingMeta, - chain->canonPath); + chain->path); TEST_LOOKUP(5, "raw", chain->backingMeta->backingStore, chain->backingMeta->backingMeta, chain->backingStore); TEST_LOOKUP(6, absraw, chain->backingMeta->backingStore, @@ -875,12 +875,12 @@ mymain(void) } TEST_LOOKUP(8, "bogus", NULL, NULL, NULL); - TEST_LOOKUP(9, "wrap", chain->canonPath, chain, NULL); - TEST_LOOKUP(10, abswrap, chain->canonPath, chain, NULL); + TEST_LOOKUP(9, "wrap", chain->path, chain, NULL); + TEST_LOOKUP(10, abswrap, chain->path, chain, NULL); TEST_LOOKUP(11, "qcow2", chain->backingStore, chain->backingMeta, - chain->canonPath); + chain->path); TEST_LOOKUP(12, absqcow2, chain->backingStore, chain->backingMeta, - chain->canonPath); + chain->path); TEST_LOOKUP(13, "raw", chain->backingMeta->backingStore, chain->backingMeta->backingMeta, chain->backingStore); TEST_LOOKUP(14, absraw, chain->backingMeta->backingStore, @@ -905,14 +905,14 @@ mymain(void) } TEST_LOOKUP(16, "bogus", NULL, NULL, NULL); - TEST_LOOKUP(17, "sub/link2", chain->canonPath, chain, NULL); - TEST_LOOKUP(18, "wrap", chain->canonPath, chain, NULL); - TEST_LOOKUP(19, abswrap, chain->canonPath, chain, NULL); + TEST_LOOKUP(17, "sub/link2", chain->path, chain, NULL); + TEST_LOOKUP(18, "wrap", chain->path, chain, NULL); + TEST_LOOKUP(19, abswrap, chain->path, chain, NULL); TEST_LOOKUP(20, "../qcow2", chain->backingStore, chain->backingMeta, - chain->canonPath); + chain->path); TEST_LOOKUP(21, "qcow2", NULL, NULL, NULL); TEST_LOOKUP(22, absqcow2, chain->backingStore, chain->backingMeta, - chain->canonPath); + chain->path); TEST_LOOKUP(23, "raw", chain->backingMeta->backingStore, chain->backingMeta->backingMeta, chain->backingStore); TEST_LOOKUP(24, absraw, chain->backingMeta->backingStore, -- 1.9.1 -- libvir-list mailing list libvir-list@xxxxxxxxxx https://www.redhat.com/mailman/listinfo/libvir-list