return NULL;
}
- if (src->externalDataStore) {
- if (!(def->externalDataStore = virStorageSourceCopy(src->externalDataStore,
- true)))
- return NULL;
- }
-
/* ssh config passthrough for libguestfs */
def->ssh_host_key_check_disabled = src->ssh_host_key_check_disabled;
def->ssh_user = g_strdup(src->ssh_user);
virStorageSourceSliceFree(def->sliceStorage);
- virObjectUnref(def->externalDataStore);
- def->externalDataStore = NULL;
-
virStorageNetHostDefFree(def->nhosts, def->hosts);
virStorageAuthDefFree(def->auth);
virObjectUnref(def->privateData);
}
-static int
-virStorageSourceNewFromExternalData(virStorageSourcePtr parent,
- virStorageSourcePtr *externalDataStore)
-{
- int rc;
-
- if ((rc = virStorageSourceNewFromChild(parent,
- parent->externalDataStoreRaw,
- externalDataStore)) < 0)
- return rc;
-
- /* qcow2 data_file can only be raw */
- (*externalDataStore)->format = VIR_STORAGE_FILE_RAW;
- (*externalDataStore)->readonly = parent->readonly;
- return rc;
-}
-
-
/**
* @src: disk source definition structure
* @fd: file descriptor
return -1;
}
- if (src->externalDataStoreRaw) {
- g_autoptr(virStorageSource) externalDataStore = NULL;
-
- if ((rv = virStorageSourceNewFromExternalData(src,
- &externalDataStore)) < 0)
- return -1;
-
- /* the file would not be usable for VM usage */
- if (rv == 1)
- return 0;
-
- src->externalDataStore = g_steal_pointer(&externalDataStore);
- }
-
return 0;
}
/* backing chain of the storage source */
virStorageSourcePtr backingStore;
- /* external data store storage source */
- virStorageSourcePtr externalDataStore;
-
/* metadata for storage driver access to remote and local volumes */
virStorageDriverDataPtr drv;