Now that storage source metadata is stored in a single struct we don't need two initialization functions for different structs. --- src/qemu/qemu_driver.c | 6 +++--- src/storage/storage_backend.c | 1 + src/storage/storage_driver.c | 41 +++++++---------------------------------- src/storage/storage_driver.h | 8 +++----- 4 files changed, 14 insertions(+), 42 deletions(-) diff --git a/src/qemu/qemu_driver.c b/src/qemu/qemu_driver.c index 5b0e484..d824e24 100644 --- a/src/qemu/qemu_driver.c +++ b/src/qemu/qemu_driver.c @@ -12489,7 +12489,7 @@ qemuDomainSnapshotPrepareDiskExternal(virConnectPtr conn, return -1; } - if (!(snapfile = virStorageFileInitFromSnapshotDef(snapdisk))) + if (!(snapfile = virStorageFileInit(&snapdisk->src))) return -1; if (virStorageFileStat(snapfile, &st) < 0) { @@ -12757,7 +12757,7 @@ qemuDomainSnapshotCreateSingleDiskActive(virQEMUDriverPtr driver, virStorageFileFreeMetadata(disk->backingChain); disk->backingChain = NULL; - if (!(snapfile = virStorageFileInitFromSnapshotDef(snap))) + if (!(snapfile = virStorageFileInit(&snap->src))) goto cleanup; if (qemuDomainSnapshotDiskGetSourceString(snap, &source) < 0) @@ -12914,7 +12914,7 @@ qemuDomainSnapshotUndoSingleDiskActive(virQEMUDriverPtr driver, virStorageFilePtr diskfile = NULL; struct stat st; - diskfile = virStorageFileInitFromDiskDef(disk); + diskfile = virStorageFileInit(&disk->src); if (VIR_STRDUP(source, origdisk->src.path) < 0 || (persistDisk && VIR_STRDUP(persistSource, source) < 0)) diff --git a/src/storage/storage_backend.c b/src/storage/storage_backend.c index b56fefe..8f9df78 100644 --- a/src/storage/storage_backend.c +++ b/src/storage/storage_backend.c @@ -55,6 +55,7 @@ #include "virfile.h" #include "stat-time.h" #include "virstring.h" +#include "virxml.h" #if WITH_STORAGE_LVM # include "storage_backend_logical.h" diff --git a/src/storage/storage_driver.c b/src/storage/storage_driver.c index 629525a..b26d791 100644 --- a/src/storage/storage_driver.c +++ b/src/storage/storage_driver.c @@ -2747,26 +2747,22 @@ virStorageFileFree(virStorageFilePtr file) } -static virStorageFilePtr -virStorageFileInitInternal(int type, - const char *path, - int protocol, - size_t nhosts, - virStorageNetHostDefPtr hosts) +virStorageFilePtr +virStorageFileInit(virStorageSourcePtr src) { virStorageFilePtr file = NULL; if (VIR_ALLOC(file) < 0) return NULL; - file->type = type; - file->protocol = protocol; - file->nhosts = nhosts; + file->type = virStorageSourceGetActualType(src); + file->protocol = src->protocol; + file->nhosts = src->nhosts; - if (VIR_STRDUP(file->path, path) < 0) + if (VIR_STRDUP(file->path, src->path) < 0) goto error; - if (!(file->hosts = virStorageNetHostDefCopy(nhosts, hosts))) + if (!(file->hosts = virStorageNetHostDefCopy(src->nhosts, src->hosts))) goto error; if (!(file->backend = virStorageFileBackendForType(file->type, @@ -2787,29 +2783,6 @@ virStorageFileInitInternal(int type, } -virStorageFilePtr -virStorageFileInitFromDiskDef(virDomainDiskDefPtr disk) -{ - return virStorageFileInitInternal(virStorageSourceGetActualType(&disk->src), - disk->src.path, - disk->src.protocol, - disk->src.nhosts, - disk->src.hosts); -} - - -virStorageFilePtr -virStorageFileInitFromSnapshotDef(virDomainSnapshotDiskDefPtr disk) -{ - return virStorageFileInitInternal(virStorageSourceGetActualType(&disk->src), - disk->src.path, - disk->src.protocol, - disk->src.nhosts, - disk->src.hosts); -} - - - /** * virStorageFileCreate: Creates an empty storage file via storage driver * diff --git a/src/storage/storage_driver.h b/src/storage/storage_driver.h index 886a4d5..d5dda00 100644 --- a/src/storage/storage_driver.h +++ b/src/storage/storage_driver.h @@ -25,8 +25,8 @@ # define __VIR_STORAGE_DRIVER_H__ # include "storage_conf.h" -# include "conf/domain_conf.h" -# include "conf/snapshot_conf.h" +# include "virstoragefile.h" +# include <sys/stat.h> typedef struct _virStorageFileBackend virStorageFileBackend; typedef virStorageFileBackend *virStorageFileBackendPtr; @@ -46,9 +46,7 @@ struct _virStorageFile { }; virStorageFilePtr -virStorageFileInitFromDiskDef(virDomainDiskDefPtr disk); -virStorageFilePtr -virStorageFileInitFromSnapshotDef(virDomainSnapshotDiskDefPtr disk); +virStorageFileInit(virStorageSourcePtr src); void virStorageFileFree(virStorageFilePtr file); int virStorageFileCreate(virStorageFilePtr file); -- 1.9.1 -- libvir-list mailing list libvir-list@xxxxxxxxxx https://www.redhat.com/mailman/listinfo/libvir-list