mirror of
https://github.com/libvirt/libvirt.git
synced 2025-02-25 18:55:26 -06:00
storage: remove virConnectPtr from all backend functions
Now that we can open connections to the secondary drivers on demand, there is no need to pass a virConnectPtr into all the backend functions. Signed-off-by: Daniel P. Berrangé <berrange@redhat.com>
This commit is contained in:
parent
decaeb2882
commit
31869efe2a
@ -25,22 +25,16 @@
|
|||||||
# include "virstorageobj.h"
|
# include "virstorageobj.h"
|
||||||
# include "storage_driver.h"
|
# include "storage_driver.h"
|
||||||
|
|
||||||
typedef char * (*virStorageBackendFindPoolSources)(virConnectPtr conn,
|
typedef char * (*virStorageBackendFindPoolSources)(const char *srcSpec,
|
||||||
const char *srcSpec,
|
|
||||||
unsigned int flags);
|
unsigned int flags);
|
||||||
typedef int (*virStorageBackendCheckPool)(virStoragePoolObjPtr pool,
|
typedef int (*virStorageBackendCheckPool)(virStoragePoolObjPtr pool,
|
||||||
bool *active);
|
bool *active);
|
||||||
typedef int (*virStorageBackendStartPool)(virConnectPtr conn,
|
typedef int (*virStorageBackendStartPool)(virStoragePoolObjPtr pool);
|
||||||
virStoragePoolObjPtr pool);
|
typedef int (*virStorageBackendBuildPool)(virStoragePoolObjPtr pool,
|
||||||
typedef int (*virStorageBackendBuildPool)(virConnectPtr conn,
|
|
||||||
virStoragePoolObjPtr pool,
|
|
||||||
unsigned int flags);
|
unsigned int flags);
|
||||||
typedef int (*virStorageBackendRefreshPool)(virConnectPtr conn,
|
typedef int (*virStorageBackendRefreshPool)(virStoragePoolObjPtr pool);
|
||||||
virStoragePoolObjPtr pool);
|
typedef int (*virStorageBackendStopPool)(virStoragePoolObjPtr pool);
|
||||||
typedef int (*virStorageBackendStopPool)(virConnectPtr conn,
|
typedef int (*virStorageBackendDeletePool)(virStoragePoolObjPtr pool,
|
||||||
virStoragePoolObjPtr pool);
|
|
||||||
typedef int (*virStorageBackendDeletePool)(virConnectPtr conn,
|
|
||||||
virStoragePoolObjPtr pool,
|
|
||||||
unsigned int flags);
|
unsigned int flags);
|
||||||
|
|
||||||
/* A 'buildVol' backend must remove any volume created on error since
|
/* A 'buildVol' backend must remove any volume created on error since
|
||||||
@ -52,46 +46,37 @@ typedef int (*virStorageBackendDeletePool)(virConnectPtr conn,
|
|||||||
* was not aware of between checking the pool and the create attempt. It
|
* was not aware of between checking the pool and the create attempt. It
|
||||||
* also avoids extra round trips to just delete a file.
|
* also avoids extra round trips to just delete a file.
|
||||||
*/
|
*/
|
||||||
typedef int (*virStorageBackendBuildVol)(virConnectPtr conn,
|
typedef int (*virStorageBackendBuildVol)(virStoragePoolObjPtr pool,
|
||||||
virStoragePoolObjPtr pool,
|
|
||||||
virStorageVolDefPtr vol,
|
virStorageVolDefPtr vol,
|
||||||
unsigned int flags);
|
unsigned int flags);
|
||||||
typedef int (*virStorageBackendCreateVol)(virConnectPtr conn,
|
typedef int (*virStorageBackendCreateVol)(virStoragePoolObjPtr pool,
|
||||||
virStoragePoolObjPtr pool,
|
|
||||||
virStorageVolDefPtr vol);
|
virStorageVolDefPtr vol);
|
||||||
typedef int (*virStorageBackendRefreshVol)(virConnectPtr conn,
|
typedef int (*virStorageBackendRefreshVol)(virStoragePoolObjPtr pool,
|
||||||
virStoragePoolObjPtr pool,
|
|
||||||
virStorageVolDefPtr vol);
|
virStorageVolDefPtr vol);
|
||||||
typedef int (*virStorageBackendDeleteVol)(virConnectPtr conn,
|
typedef int (*virStorageBackendDeleteVol)(virStoragePoolObjPtr pool,
|
||||||
virStoragePoolObjPtr pool,
|
|
||||||
virStorageVolDefPtr vol,
|
virStorageVolDefPtr vol,
|
||||||
unsigned int flags);
|
unsigned int flags);
|
||||||
typedef int (*virStorageBackendBuildVolFrom)(virConnectPtr conn,
|
typedef int (*virStorageBackendBuildVolFrom)(virStoragePoolObjPtr pool,
|
||||||
virStoragePoolObjPtr pool,
|
|
||||||
virStorageVolDefPtr origvol,
|
virStorageVolDefPtr origvol,
|
||||||
virStorageVolDefPtr newvol,
|
virStorageVolDefPtr newvol,
|
||||||
unsigned int flags);
|
unsigned int flags);
|
||||||
typedef int (*virStorageBackendVolumeResize)(virConnectPtr conn,
|
typedef int (*virStorageBackendVolumeResize)(virStoragePoolObjPtr pool,
|
||||||
virStoragePoolObjPtr pool,
|
|
||||||
virStorageVolDefPtr vol,
|
virStorageVolDefPtr vol,
|
||||||
unsigned long long capacity,
|
unsigned long long capacity,
|
||||||
unsigned int flags);
|
unsigned int flags);
|
||||||
typedef int (*virStorageBackendVolumeDownload)(virConnectPtr conn,
|
typedef int (*virStorageBackendVolumeDownload)(virStoragePoolObjPtr obj,
|
||||||
virStoragePoolObjPtr obj,
|
|
||||||
virStorageVolDefPtr vol,
|
virStorageVolDefPtr vol,
|
||||||
virStreamPtr stream,
|
virStreamPtr stream,
|
||||||
unsigned long long offset,
|
unsigned long long offset,
|
||||||
unsigned long long length,
|
unsigned long long length,
|
||||||
unsigned int flags);
|
unsigned int flags);
|
||||||
typedef int (*virStorageBackendVolumeUpload)(virConnectPtr conn,
|
typedef int (*virStorageBackendVolumeUpload)(virStoragePoolObjPtr obj,
|
||||||
virStoragePoolObjPtr obj,
|
|
||||||
virStorageVolDefPtr vol,
|
virStorageVolDefPtr vol,
|
||||||
virStreamPtr stream,
|
virStreamPtr stream,
|
||||||
unsigned long long offset,
|
unsigned long long offset,
|
||||||
unsigned long long len,
|
unsigned long long len,
|
||||||
unsigned int flags);
|
unsigned int flags);
|
||||||
typedef int (*virStorageBackendVolumeWipe)(virConnectPtr conn,
|
typedef int (*virStorageBackendVolumeWipe)(virStoragePoolObjPtr pool,
|
||||||
virStoragePoolObjPtr pool,
|
|
||||||
virStorageVolDefPtr vol,
|
virStorageVolDefPtr vol,
|
||||||
unsigned int algorithm,
|
unsigned int algorithm,
|
||||||
unsigned int flags);
|
unsigned int flags);
|
||||||
|
@ -439,8 +439,7 @@ virStorageBackendDiskReadGeometry(virStoragePoolObjPtr pool)
|
|||||||
}
|
}
|
||||||
|
|
||||||
static int
|
static int
|
||||||
virStorageBackendDiskRefreshPool(virConnectPtr conn ATTRIBUTE_UNUSED,
|
virStorageBackendDiskRefreshPool(virStoragePoolObjPtr pool)
|
||||||
virStoragePoolObjPtr pool)
|
|
||||||
{
|
{
|
||||||
virStoragePoolDefPtr def = virStoragePoolObjGetDef(pool);
|
virStoragePoolDefPtr def = virStoragePoolObjGetDef(pool);
|
||||||
|
|
||||||
@ -464,8 +463,7 @@ virStorageBackendDiskRefreshPool(virConnectPtr conn ATTRIBUTE_UNUSED,
|
|||||||
|
|
||||||
|
|
||||||
static int
|
static int
|
||||||
virStorageBackendDiskStartPool(virConnectPtr conn ATTRIBUTE_UNUSED,
|
virStorageBackendDiskStartPool(virStoragePoolObjPtr pool)
|
||||||
virStoragePoolObjPtr pool)
|
|
||||||
{
|
{
|
||||||
virStoragePoolDefPtr def = virStoragePoolObjGetDef(pool);
|
virStoragePoolDefPtr def = virStoragePoolObjGetDef(pool);
|
||||||
const char *format;
|
const char *format;
|
||||||
@ -493,8 +491,7 @@ virStorageBackendDiskStartPool(virConnectPtr conn ATTRIBUTE_UNUSED,
|
|||||||
* Write a new partition table header
|
* Write a new partition table header
|
||||||
*/
|
*/
|
||||||
static int
|
static int
|
||||||
virStorageBackendDiskBuildPool(virConnectPtr conn ATTRIBUTE_UNUSED,
|
virStorageBackendDiskBuildPool(virStoragePoolObjPtr pool,
|
||||||
virStoragePoolObjPtr pool,
|
|
||||||
unsigned int flags)
|
unsigned int flags)
|
||||||
{
|
{
|
||||||
virStoragePoolDefPtr def = virStoragePoolObjGetDef(pool);
|
virStoragePoolDefPtr def = virStoragePoolObjGetDef(pool);
|
||||||
@ -751,7 +748,6 @@ virStorageBackendDiskPartBoundaries(virStoragePoolObjPtr pool,
|
|||||||
|
|
||||||
|
|
||||||
/* virStorageBackendDiskDeleteVol
|
/* virStorageBackendDiskDeleteVol
|
||||||
* @conn: Pointer to a libvirt connection
|
|
||||||
* @pool: Pointer to the storage pool
|
* @pool: Pointer to the storage pool
|
||||||
* @vol: Pointer to the volume definition
|
* @vol: Pointer to the volume definition
|
||||||
* @flags: flags (unused for now)
|
* @flags: flags (unused for now)
|
||||||
@ -776,8 +772,7 @@ virStorageBackendDiskPartBoundaries(virStoragePoolObjPtr pool,
|
|||||||
* Returns 0 on success, -1 on failure with error message set.
|
* Returns 0 on success, -1 on failure with error message set.
|
||||||
*/
|
*/
|
||||||
static int
|
static int
|
||||||
virStorageBackendDiskDeleteVol(virConnectPtr conn,
|
virStorageBackendDiskDeleteVol(virStoragePoolObjPtr pool,
|
||||||
virStoragePoolObjPtr pool,
|
|
||||||
virStorageVolDefPtr vol,
|
virStorageVolDefPtr vol,
|
||||||
unsigned int flags)
|
unsigned int flags)
|
||||||
{
|
{
|
||||||
@ -856,7 +851,7 @@ virStorageBackendDiskDeleteVol(virConnectPtr conn,
|
|||||||
* here is pointless
|
* here is pointless
|
||||||
*/
|
*/
|
||||||
virStoragePoolObjClearVols(pool);
|
virStoragePoolObjClearVols(pool);
|
||||||
if (virStorageBackendDiskRefreshPool(conn, pool) < 0)
|
if (virStorageBackendDiskRefreshPool(pool) < 0)
|
||||||
goto cleanup;
|
goto cleanup;
|
||||||
|
|
||||||
rc = 0;
|
rc = 0;
|
||||||
@ -868,8 +863,7 @@ virStorageBackendDiskDeleteVol(virConnectPtr conn,
|
|||||||
|
|
||||||
|
|
||||||
static int
|
static int
|
||||||
virStorageBackendDiskCreateVol(virConnectPtr conn,
|
virStorageBackendDiskCreateVol(virStoragePoolObjPtr pool,
|
||||||
virStoragePoolObjPtr pool,
|
|
||||||
virStorageVolDefPtr vol)
|
virStorageVolDefPtr vol)
|
||||||
{
|
{
|
||||||
int res = -1;
|
int res = -1;
|
||||||
@ -921,7 +915,7 @@ virStorageBackendDiskCreateVol(virConnectPtr conn,
|
|||||||
* since we could be calling this with vol->target.path == NULL
|
* since we could be calling this with vol->target.path == NULL
|
||||||
*/
|
*/
|
||||||
virErrorPtr save_err = virSaveLastError();
|
virErrorPtr save_err = virSaveLastError();
|
||||||
ignore_value(virStorageBackendDiskDeleteVol(conn, pool, vol, 0));
|
ignore_value(virStorageBackendDiskDeleteVol(pool, vol, 0));
|
||||||
virSetError(save_err);
|
virSetError(save_err);
|
||||||
virFreeError(save_err);
|
virFreeError(save_err);
|
||||||
goto cleanup;
|
goto cleanup;
|
||||||
@ -936,8 +930,7 @@ virStorageBackendDiskCreateVol(virConnectPtr conn,
|
|||||||
}
|
}
|
||||||
|
|
||||||
static int
|
static int
|
||||||
virStorageBackendDiskBuildVolFrom(virConnectPtr conn,
|
virStorageBackendDiskBuildVolFrom(virStoragePoolObjPtr pool,
|
||||||
virStoragePoolObjPtr pool,
|
|
||||||
virStorageVolDefPtr vol,
|
virStorageVolDefPtr vol,
|
||||||
virStorageVolDefPtr inputvol,
|
virStorageVolDefPtr inputvol,
|
||||||
unsigned int flags)
|
unsigned int flags)
|
||||||
@ -948,19 +941,18 @@ virStorageBackendDiskBuildVolFrom(virConnectPtr conn,
|
|||||||
if (!build_func)
|
if (!build_func)
|
||||||
return -1;
|
return -1;
|
||||||
|
|
||||||
return build_func(conn, pool, vol, inputvol, flags);
|
return build_func(pool, vol, inputvol, flags);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
static int
|
static int
|
||||||
virStorageBackendDiskVolWipe(virConnectPtr conn,
|
virStorageBackendDiskVolWipe(virStoragePoolObjPtr pool,
|
||||||
virStoragePoolObjPtr pool,
|
|
||||||
virStorageVolDefPtr vol,
|
virStorageVolDefPtr vol,
|
||||||
unsigned int algorithm,
|
unsigned int algorithm,
|
||||||
unsigned int flags)
|
unsigned int flags)
|
||||||
{
|
{
|
||||||
if (vol->source.partType != VIR_STORAGE_VOL_DISK_TYPE_EXTENDED)
|
if (vol->source.partType != VIR_STORAGE_VOL_DISK_TYPE_EXTENDED)
|
||||||
return virStorageBackendVolWipeLocal(conn, pool, vol, algorithm, flags);
|
return virStorageBackendVolWipeLocal(pool, vol, algorithm, flags);
|
||||||
|
|
||||||
/* Wiping an extended partition is not support */
|
/* Wiping an extended partition is not support */
|
||||||
virReportError(VIR_ERR_NO_SUPPORT,
|
virReportError(VIR_ERR_NO_SUPPORT,
|
||||||
|
@ -145,8 +145,7 @@ virStorageBackendFileSystemNetFindNFSPoolSources(virNetfsDiscoverState *state)
|
|||||||
|
|
||||||
|
|
||||||
static char *
|
static char *
|
||||||
virStorageBackendFileSystemNetFindPoolSources(virConnectPtr conn ATTRIBUTE_UNUSED,
|
virStorageBackendFileSystemNetFindPoolSources(const char *srcSpec,
|
||||||
const char *srcSpec,
|
|
||||||
unsigned int flags)
|
unsigned int flags)
|
||||||
{
|
{
|
||||||
virNetfsDiscoverState state = {
|
virNetfsDiscoverState state = {
|
||||||
@ -427,7 +426,6 @@ virStorageBackendFileSystemMount(virStoragePoolObjPtr pool)
|
|||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @conn connection to report errors against
|
|
||||||
* @pool storage pool to start
|
* @pool storage pool to start
|
||||||
*
|
*
|
||||||
* Starts a directory or FS based storage pool. The underlying source
|
* Starts a directory or FS based storage pool. The underlying source
|
||||||
@ -436,8 +434,7 @@ virStorageBackendFileSystemMount(virStoragePoolObjPtr pool)
|
|||||||
* Returns 0 on success, -1 on error
|
* Returns 0 on success, -1 on error
|
||||||
*/
|
*/
|
||||||
static int
|
static int
|
||||||
virStorageBackendFileSystemStart(virConnectPtr conn ATTRIBUTE_UNUSED,
|
virStorageBackendFileSystemStart(virStoragePoolObjPtr pool)
|
||||||
virStoragePoolObjPtr pool)
|
|
||||||
{
|
{
|
||||||
virStoragePoolDefPtr def = virStoragePoolObjGetDef(pool);
|
virStoragePoolDefPtr def = virStoragePoolObjGetDef(pool);
|
||||||
|
|
||||||
@ -450,7 +447,6 @@ virStorageBackendFileSystemStart(virConnectPtr conn ATTRIBUTE_UNUSED,
|
|||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @conn connection to report errors against
|
|
||||||
* @pool storage pool to unmount
|
* @pool storage pool to unmount
|
||||||
*
|
*
|
||||||
* Stops a file storage pool. The underlying source device is unmounted
|
* Stops a file storage pool. The underlying source device is unmounted
|
||||||
@ -462,8 +458,7 @@ virStorageBackendFileSystemStart(virConnectPtr conn ATTRIBUTE_UNUSED,
|
|||||||
* Returns 0 if successfully unmounted, -1 on error
|
* Returns 0 if successfully unmounted, -1 on error
|
||||||
*/
|
*/
|
||||||
static int
|
static int
|
||||||
virStorageBackendFileSystemStop(virConnectPtr conn ATTRIBUTE_UNUSED,
|
virStorageBackendFileSystemStop(virStoragePoolObjPtr pool)
|
||||||
virStoragePoolObjPtr pool)
|
|
||||||
{
|
{
|
||||||
virStoragePoolDefPtr def = virStoragePoolObjGetDef(pool);
|
virStoragePoolDefPtr def = virStoragePoolObjGetDef(pool);
|
||||||
virCommandPtr cmd = NULL;
|
virCommandPtr cmd = NULL;
|
||||||
@ -609,7 +604,6 @@ virStorageBackendMakeFileSystem(virStoragePoolObjPtr pool,
|
|||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @conn connection to report errors against
|
|
||||||
* @pool storage pool to build
|
* @pool storage pool to build
|
||||||
* @flags controls the pool formatting behaviour
|
* @flags controls the pool formatting behaviour
|
||||||
*
|
*
|
||||||
@ -630,8 +624,7 @@ virStorageBackendMakeFileSystem(virStoragePoolObjPtr pool,
|
|||||||
* Returns 0 on success, -1 on error
|
* Returns 0 on success, -1 on error
|
||||||
*/
|
*/
|
||||||
static int
|
static int
|
||||||
virStorageBackendFileSystemBuild(virConnectPtr conn ATTRIBUTE_UNUSED,
|
virStorageBackendFileSystemBuild(virStoragePoolObjPtr pool,
|
||||||
virStoragePoolObjPtr pool,
|
|
||||||
unsigned int flags)
|
unsigned int flags)
|
||||||
{
|
{
|
||||||
virCheckFlags(VIR_STORAGE_POOL_BUILD_OVERWRITE |
|
virCheckFlags(VIR_STORAGE_POOL_BUILD_OVERWRITE |
|
||||||
|
@ -342,8 +342,7 @@ virStorageBackendGlusterRefreshVol(virStorageBackendGlusterStatePtr state,
|
|||||||
}
|
}
|
||||||
|
|
||||||
static int
|
static int
|
||||||
virStorageBackendGlusterRefreshPool(virConnectPtr conn ATTRIBUTE_UNUSED,
|
virStorageBackendGlusterRefreshPool(virStoragePoolObjPtr pool)
|
||||||
virStoragePoolObjPtr pool)
|
|
||||||
{
|
{
|
||||||
int ret = -1;
|
int ret = -1;
|
||||||
virStoragePoolDefPtr def = virStoragePoolObjGetDef(pool);
|
virStoragePoolDefPtr def = virStoragePoolObjGetDef(pool);
|
||||||
@ -423,8 +422,7 @@ virStorageBackendGlusterRefreshPool(virConnectPtr conn ATTRIBUTE_UNUSED,
|
|||||||
|
|
||||||
|
|
||||||
static int
|
static int
|
||||||
virStorageBackendGlusterVolDelete(virConnectPtr conn ATTRIBUTE_UNUSED,
|
virStorageBackendGlusterVolDelete(virStoragePoolObjPtr pool,
|
||||||
virStoragePoolObjPtr pool,
|
|
||||||
virStorageVolDefPtr vol,
|
virStorageVolDefPtr vol,
|
||||||
unsigned int flags)
|
unsigned int flags)
|
||||||
{
|
{
|
||||||
@ -485,8 +483,7 @@ virStorageBackendGlusterVolDelete(virConnectPtr conn ATTRIBUTE_UNUSED,
|
|||||||
|
|
||||||
|
|
||||||
static char *
|
static char *
|
||||||
virStorageBackendGlusterFindPoolSources(virConnectPtr conn ATTRIBUTE_UNUSED,
|
virStorageBackendGlusterFindPoolSources(const char *srcSpec,
|
||||||
const char *srcSpec,
|
|
||||||
unsigned int flags)
|
unsigned int flags)
|
||||||
{
|
{
|
||||||
virStoragePoolSourceList list = { .type = VIR_STORAGE_POOL_GLUSTER,
|
virStoragePoolSourceList list = { .type = VIR_STORAGE_POOL_GLUSTER,
|
||||||
|
@ -158,8 +158,7 @@ virStorageBackendISCSIFindLUs(virStoragePoolObjPtr pool,
|
|||||||
|
|
||||||
|
|
||||||
static char *
|
static char *
|
||||||
virStorageBackendISCSIFindPoolSources(virConnectPtr conn ATTRIBUTE_UNUSED,
|
virStorageBackendISCSIFindPoolSources(const char *srcSpec,
|
||||||
const char *srcSpec,
|
|
||||||
unsigned int flags)
|
unsigned int flags)
|
||||||
{
|
{
|
||||||
virStoragePoolSourcePtr source = NULL;
|
virStoragePoolSourcePtr source = NULL;
|
||||||
@ -324,8 +323,7 @@ virStorageBackendISCSISetAuth(const char *portal,
|
|||||||
}
|
}
|
||||||
|
|
||||||
static int
|
static int
|
||||||
virStorageBackendISCSIStartPool(virConnectPtr conn ATTRIBUTE_UNUSED,
|
virStorageBackendISCSIStartPool(virStoragePoolObjPtr pool)
|
||||||
virStoragePoolObjPtr pool)
|
|
||||||
{
|
{
|
||||||
virStoragePoolDefPtr def = virStoragePoolObjGetDef(pool);
|
virStoragePoolDefPtr def = virStoragePoolObjGetDef(pool);
|
||||||
char *portal = NULL;
|
char *portal = NULL;
|
||||||
@ -377,8 +375,7 @@ virStorageBackendISCSIStartPool(virConnectPtr conn ATTRIBUTE_UNUSED,
|
|||||||
}
|
}
|
||||||
|
|
||||||
static int
|
static int
|
||||||
virStorageBackendISCSIRefreshPool(virConnectPtr conn ATTRIBUTE_UNUSED,
|
virStorageBackendISCSIRefreshPool(virStoragePoolObjPtr pool)
|
||||||
virStoragePoolObjPtr pool)
|
|
||||||
{
|
{
|
||||||
virStoragePoolDefPtr def = virStoragePoolObjGetDef(pool);
|
virStoragePoolDefPtr def = virStoragePoolObjGetDef(pool);
|
||||||
char *session = NULL;
|
char *session = NULL;
|
||||||
@ -402,8 +399,7 @@ virStorageBackendISCSIRefreshPool(virConnectPtr conn ATTRIBUTE_UNUSED,
|
|||||||
|
|
||||||
|
|
||||||
static int
|
static int
|
||||||
virStorageBackendISCSIStopPool(virConnectPtr conn ATTRIBUTE_UNUSED,
|
virStorageBackendISCSIStopPool(virStoragePoolObjPtr pool)
|
||||||
virStoragePoolObjPtr pool)
|
|
||||||
{
|
{
|
||||||
virStoragePoolDefPtr def = virStoragePoolObjGetDef(pool);
|
virStoragePoolDefPtr def = virStoragePoolObjGetDef(pool);
|
||||||
char *portal;
|
char *portal;
|
||||||
|
@ -588,8 +588,7 @@ virStorageBackendLogicalGetPoolSources(virStoragePoolSourceListPtr sourceList)
|
|||||||
|
|
||||||
|
|
||||||
static char *
|
static char *
|
||||||
virStorageBackendLogicalFindPoolSources(virConnectPtr conn ATTRIBUTE_UNUSED,
|
virStorageBackendLogicalFindPoolSources(const char *srcSpec ATTRIBUTE_UNUSED,
|
||||||
const char *srcSpec ATTRIBUTE_UNUSED,
|
|
||||||
unsigned int flags)
|
unsigned int flags)
|
||||||
{
|
{
|
||||||
virStoragePoolSourceList sourceList;
|
virStoragePoolSourceList sourceList;
|
||||||
@ -728,8 +727,7 @@ virStorageBackendLogicalCheckPool(virStoragePoolObjPtr pool,
|
|||||||
}
|
}
|
||||||
|
|
||||||
static int
|
static int
|
||||||
virStorageBackendLogicalStartPool(virConnectPtr conn ATTRIBUTE_UNUSED,
|
virStorageBackendLogicalStartPool(virStoragePoolObjPtr pool)
|
||||||
virStoragePoolObjPtr pool)
|
|
||||||
{
|
{
|
||||||
/* Let's make sure that the pool's name matches the pvs output and
|
/* Let's make sure that the pool's name matches the pvs output and
|
||||||
* that the pool's source devices match the pvs output.
|
* that the pool's source devices match the pvs output.
|
||||||
@ -743,8 +741,7 @@ virStorageBackendLogicalStartPool(virConnectPtr conn ATTRIBUTE_UNUSED,
|
|||||||
|
|
||||||
|
|
||||||
static int
|
static int
|
||||||
virStorageBackendLogicalBuildPool(virConnectPtr conn ATTRIBUTE_UNUSED,
|
virStorageBackendLogicalBuildPool(virStoragePoolObjPtr pool,
|
||||||
virStoragePoolObjPtr pool,
|
|
||||||
unsigned int flags)
|
unsigned int flags)
|
||||||
{
|
{
|
||||||
virStoragePoolDefPtr def = virStoragePoolObjGetDef(pool);
|
virStoragePoolDefPtr def = virStoragePoolObjGetDef(pool);
|
||||||
@ -799,8 +796,7 @@ virStorageBackendLogicalBuildPool(virConnectPtr conn ATTRIBUTE_UNUSED,
|
|||||||
|
|
||||||
|
|
||||||
static int
|
static int
|
||||||
virStorageBackendLogicalRefreshPool(virConnectPtr conn ATTRIBUTE_UNUSED,
|
virStorageBackendLogicalRefreshPool(virStoragePoolObjPtr pool)
|
||||||
virStoragePoolObjPtr pool)
|
|
||||||
{
|
{
|
||||||
/*
|
/*
|
||||||
* # vgs --separator : --noheadings --units b --unbuffered --nosuffix --options "vg_size,vg_free" VGNAME
|
* # vgs --separator : --noheadings --units b --unbuffered --nosuffix --options "vg_size,vg_free" VGNAME
|
||||||
@ -862,8 +858,7 @@ virStorageBackendLogicalRefreshPool(virConnectPtr conn ATTRIBUTE_UNUSED,
|
|||||||
* "Can't deactivate volume group "VolGroup00" with 3 open logical volume(s)"
|
* "Can't deactivate volume group "VolGroup00" with 3 open logical volume(s)"
|
||||||
*/
|
*/
|
||||||
static int
|
static int
|
||||||
virStorageBackendLogicalStopPool(virConnectPtr conn ATTRIBUTE_UNUSED,
|
virStorageBackendLogicalStopPool(virStoragePoolObjPtr pool)
|
||||||
virStoragePoolObjPtr pool)
|
|
||||||
{
|
{
|
||||||
if (virStorageBackendLogicalSetActive(pool, 0) < 0)
|
if (virStorageBackendLogicalSetActive(pool, 0) < 0)
|
||||||
return -1;
|
return -1;
|
||||||
@ -872,8 +867,7 @@ virStorageBackendLogicalStopPool(virConnectPtr conn ATTRIBUTE_UNUSED,
|
|||||||
}
|
}
|
||||||
|
|
||||||
static int
|
static int
|
||||||
virStorageBackendLogicalDeletePool(virConnectPtr conn ATTRIBUTE_UNUSED,
|
virStorageBackendLogicalDeletePool(virStoragePoolObjPtr pool,
|
||||||
virStoragePoolObjPtr pool,
|
|
||||||
unsigned int flags)
|
unsigned int flags)
|
||||||
{
|
{
|
||||||
virStoragePoolDefPtr def = virStoragePoolObjGetDef(pool);
|
virStoragePoolDefPtr def = virStoragePoolObjGetDef(pool);
|
||||||
@ -903,8 +897,7 @@ virStorageBackendLogicalDeletePool(virConnectPtr conn ATTRIBUTE_UNUSED,
|
|||||||
|
|
||||||
|
|
||||||
static int
|
static int
|
||||||
virStorageBackendLogicalDeleteVol(virConnectPtr conn ATTRIBUTE_UNUSED,
|
virStorageBackendLogicalDeleteVol(virStoragePoolObjPtr pool ATTRIBUTE_UNUSED,
|
||||||
virStoragePoolObjPtr pool ATTRIBUTE_UNUSED,
|
|
||||||
virStorageVolDefPtr vol,
|
virStorageVolDefPtr vol,
|
||||||
unsigned int flags)
|
unsigned int flags)
|
||||||
{
|
{
|
||||||
@ -977,8 +970,7 @@ virStorageBackendLogicalLVCreate(virStorageVolDefPtr vol,
|
|||||||
|
|
||||||
|
|
||||||
static int
|
static int
|
||||||
virStorageBackendLogicalCreateVol(virConnectPtr conn,
|
virStorageBackendLogicalCreateVol(virStoragePoolObjPtr pool,
|
||||||
virStoragePoolObjPtr pool,
|
|
||||||
virStorageVolDefPtr vol)
|
virStorageVolDefPtr vol)
|
||||||
{
|
{
|
||||||
int fd = -1;
|
int fd = -1;
|
||||||
@ -1042,15 +1034,14 @@ virStorageBackendLogicalCreateVol(virConnectPtr conn,
|
|||||||
error:
|
error:
|
||||||
err = virSaveLastError();
|
err = virSaveLastError();
|
||||||
VIR_FORCE_CLOSE(fd);
|
VIR_FORCE_CLOSE(fd);
|
||||||
virStorageBackendLogicalDeleteVol(conn, pool, vol, 0);
|
virStorageBackendLogicalDeleteVol(pool, vol, 0);
|
||||||
virSetError(err);
|
virSetError(err);
|
||||||
virFreeError(err);
|
virFreeError(err);
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
|
|
||||||
static int
|
static int
|
||||||
virStorageBackendLogicalBuildVolFrom(virConnectPtr conn,
|
virStorageBackendLogicalBuildVolFrom(virStoragePoolObjPtr pool,
|
||||||
virStoragePoolObjPtr pool,
|
|
||||||
virStorageVolDefPtr vol,
|
virStorageVolDefPtr vol,
|
||||||
virStorageVolDefPtr inputvol,
|
virStorageVolDefPtr inputvol,
|
||||||
unsigned int flags)
|
unsigned int flags)
|
||||||
@ -1061,18 +1052,17 @@ virStorageBackendLogicalBuildVolFrom(virConnectPtr conn,
|
|||||||
if (!build_func)
|
if (!build_func)
|
||||||
return -1;
|
return -1;
|
||||||
|
|
||||||
return build_func(conn, pool, vol, inputvol, flags);
|
return build_func(pool, vol, inputvol, flags);
|
||||||
}
|
}
|
||||||
|
|
||||||
static int
|
static int
|
||||||
virStorageBackendLogicalVolWipe(virConnectPtr conn,
|
virStorageBackendLogicalVolWipe(virStoragePoolObjPtr pool,
|
||||||
virStoragePoolObjPtr pool,
|
|
||||||
virStorageVolDefPtr vol,
|
virStorageVolDefPtr vol,
|
||||||
unsigned int algorithm,
|
unsigned int algorithm,
|
||||||
unsigned int flags)
|
unsigned int flags)
|
||||||
{
|
{
|
||||||
if (!vol->target.sparse)
|
if (!vol->target.sparse)
|
||||||
return virStorageBackendVolWipeLocal(conn, pool, vol, algorithm, flags);
|
return virStorageBackendVolWipeLocal(pool, vol, algorithm, flags);
|
||||||
|
|
||||||
/* The wiping algorithms will write something to the logical volume.
|
/* The wiping algorithms will write something to the logical volume.
|
||||||
* Writing to a sparse logical volume causes it to be filled resulting
|
* Writing to a sparse logical volume causes it to be filled resulting
|
||||||
|
@ -256,13 +256,12 @@ virStorageBackendMpathCheckPool(virStoragePoolObjPtr pool ATTRIBUTE_UNUSED,
|
|||||||
|
|
||||||
|
|
||||||
static int
|
static int
|
||||||
virStorageBackendMpathRefreshPool(virConnectPtr conn ATTRIBUTE_UNUSED,
|
virStorageBackendMpathRefreshPool(virStoragePoolObjPtr pool)
|
||||||
virStoragePoolObjPtr pool)
|
|
||||||
{
|
{
|
||||||
int retval = 0;
|
int retval = 0;
|
||||||
virStoragePoolDefPtr def = virStoragePoolObjGetDef(pool);
|
virStoragePoolDefPtr def = virStoragePoolObjGetDef(pool);
|
||||||
|
|
||||||
VIR_DEBUG("conn=%p, pool=%p", conn, pool);
|
VIR_DEBUG("pool=%p", pool);
|
||||||
|
|
||||||
def->allocation = def->capacity = def->available = 0;
|
def->allocation = def->capacity = def->available = 0;
|
||||||
|
|
||||||
|
@ -420,8 +420,7 @@ volStorageBackendRBDRefreshVolInfo(virStorageVolDefPtr vol,
|
|||||||
}
|
}
|
||||||
|
|
||||||
static int
|
static int
|
||||||
virStorageBackendRBDRefreshPool(virConnectPtr conn ATTRIBUTE_UNUSED,
|
virStorageBackendRBDRefreshPool(virStoragePoolObjPtr pool)
|
||||||
virStoragePoolObjPtr pool)
|
|
||||||
{
|
{
|
||||||
size_t max_size = 1024;
|
size_t max_size = 1024;
|
||||||
int ret = -1;
|
int ret = -1;
|
||||||
@ -602,8 +601,7 @@ virStorageBackendRBDCleanupSnapshots(rados_ioctx_t ioctx,
|
|||||||
}
|
}
|
||||||
|
|
||||||
static int
|
static int
|
||||||
virStorageBackendRBDDeleteVol(virConnectPtr conn ATTRIBUTE_UNUSED,
|
virStorageBackendRBDDeleteVol(virStoragePoolObjPtr pool,
|
||||||
virStoragePoolObjPtr pool,
|
|
||||||
virStorageVolDefPtr vol,
|
virStorageVolDefPtr vol,
|
||||||
unsigned int flags)
|
unsigned int flags)
|
||||||
{
|
{
|
||||||
@ -647,8 +645,7 @@ virStorageBackendRBDDeleteVol(virConnectPtr conn ATTRIBUTE_UNUSED,
|
|||||||
|
|
||||||
|
|
||||||
static int
|
static int
|
||||||
virStorageBackendRBDCreateVol(virConnectPtr conn ATTRIBUTE_UNUSED,
|
virStorageBackendRBDCreateVol(virStoragePoolObjPtr pool,
|
||||||
virStoragePoolObjPtr pool,
|
|
||||||
virStorageVolDefPtr vol)
|
virStorageVolDefPtr vol)
|
||||||
{
|
{
|
||||||
virStoragePoolDefPtr def = virStoragePoolObjGetDef(pool);
|
virStoragePoolDefPtr def = virStoragePoolObjGetDef(pool);
|
||||||
@ -682,8 +679,7 @@ static int virStorageBackendRBDCreateImage(rados_ioctx_t io,
|
|||||||
}
|
}
|
||||||
|
|
||||||
static int
|
static int
|
||||||
virStorageBackendRBDBuildVol(virConnectPtr conn ATTRIBUTE_UNUSED,
|
virStorageBackendRBDBuildVol(virStoragePoolObjPtr pool,
|
||||||
virStoragePoolObjPtr pool,
|
|
||||||
virStorageVolDefPtr vol,
|
virStorageVolDefPtr vol,
|
||||||
unsigned int flags)
|
unsigned int flags)
|
||||||
{
|
{
|
||||||
@ -1038,8 +1034,7 @@ virStorageBackendRBDCloneImage(rados_ioctx_t io,
|
|||||||
}
|
}
|
||||||
|
|
||||||
static int
|
static int
|
||||||
virStorageBackendRBDBuildVolFrom(virConnectPtr conn ATTRIBUTE_UNUSED,
|
virStorageBackendRBDBuildVolFrom(virStoragePoolObjPtr pool,
|
||||||
virStoragePoolObjPtr pool,
|
|
||||||
virStorageVolDefPtr newvol,
|
virStorageVolDefPtr newvol,
|
||||||
virStorageVolDefPtr origvol,
|
virStorageVolDefPtr origvol,
|
||||||
unsigned int flags)
|
unsigned int flags)
|
||||||
@ -1068,8 +1063,7 @@ virStorageBackendRBDBuildVolFrom(virConnectPtr conn ATTRIBUTE_UNUSED,
|
|||||||
}
|
}
|
||||||
|
|
||||||
static int
|
static int
|
||||||
virStorageBackendRBDRefreshVol(virConnectPtr conn ATTRIBUTE_UNUSED,
|
virStorageBackendRBDRefreshVol(virStoragePoolObjPtr pool ATTRIBUTE_UNUSED,
|
||||||
virStoragePoolObjPtr pool ATTRIBUTE_UNUSED,
|
|
||||||
virStorageVolDefPtr vol)
|
virStorageVolDefPtr vol)
|
||||||
{
|
{
|
||||||
virStorageBackendRBDStatePtr ptr = NULL;
|
virStorageBackendRBDStatePtr ptr = NULL;
|
||||||
@ -1089,8 +1083,7 @@ virStorageBackendRBDRefreshVol(virConnectPtr conn ATTRIBUTE_UNUSED,
|
|||||||
}
|
}
|
||||||
|
|
||||||
static int
|
static int
|
||||||
virStorageBackendRBDResizeVol(virConnectPtr conn ATTRIBUTE_UNUSED,
|
virStorageBackendRBDResizeVol(virStoragePoolObjPtr pool ATTRIBUTE_UNUSED,
|
||||||
virStoragePoolObjPtr pool ATTRIBUTE_UNUSED,
|
|
||||||
virStorageVolDefPtr vol,
|
virStorageVolDefPtr vol,
|
||||||
unsigned long long capacity,
|
unsigned long long capacity,
|
||||||
unsigned int flags)
|
unsigned int flags)
|
||||||
@ -1201,8 +1194,7 @@ virStorageBackendRBDVolWipeDiscard(rbd_image_t image,
|
|||||||
}
|
}
|
||||||
|
|
||||||
static int
|
static int
|
||||||
virStorageBackendRBDVolWipe(virConnectPtr conn ATTRIBUTE_UNUSED,
|
virStorageBackendRBDVolWipe(virStoragePoolObjPtr pool,
|
||||||
virStoragePoolObjPtr pool,
|
|
||||||
virStorageVolDefPtr vol,
|
virStorageVolDefPtr vol,
|
||||||
unsigned int algorithm,
|
unsigned int algorithm,
|
||||||
unsigned int flags)
|
unsigned int flags)
|
||||||
|
@ -412,8 +412,7 @@ virStorageBackendSCSICheckPool(virStoragePoolObjPtr pool,
|
|||||||
}
|
}
|
||||||
|
|
||||||
static int
|
static int
|
||||||
virStorageBackendSCSIRefreshPool(virConnectPtr conn ATTRIBUTE_UNUSED,
|
virStorageBackendSCSIRefreshPool(virStoragePoolObjPtr pool)
|
||||||
virStoragePoolObjPtr pool)
|
|
||||||
{
|
{
|
||||||
virStoragePoolDefPtr def = virStoragePoolObjGetDef(pool);
|
virStoragePoolDefPtr def = virStoragePoolObjGetDef(pool);
|
||||||
char *name = NULL;
|
char *name = NULL;
|
||||||
@ -444,8 +443,7 @@ virStorageBackendSCSIRefreshPool(virConnectPtr conn ATTRIBUTE_UNUSED,
|
|||||||
|
|
||||||
|
|
||||||
static int
|
static int
|
||||||
virStorageBackendSCSIStartPool(virConnectPtr conn ATTRIBUTE_UNUSED,
|
virStorageBackendSCSIStartPool(virStoragePoolObjPtr pool)
|
||||||
virStoragePoolObjPtr pool)
|
|
||||||
{
|
{
|
||||||
virStoragePoolDefPtr def = virStoragePoolObjGetDef(pool);
|
virStoragePoolDefPtr def = virStoragePoolObjGetDef(pool);
|
||||||
const char *configFile = virStoragePoolObjGetConfigFile(pool);
|
const char *configFile = virStoragePoolObjGetConfigFile(pool);
|
||||||
@ -459,12 +457,12 @@ virStorageBackendSCSIStartPool(virConnectPtr conn ATTRIBUTE_UNUSED,
|
|||||||
|
|
||||||
|
|
||||||
static int
|
static int
|
||||||
virStorageBackendSCSIStopPool(virConnectPtr conn,
|
virStorageBackendSCSIStopPool(virStoragePoolObjPtr pool)
|
||||||
virStoragePoolObjPtr pool)
|
|
||||||
{
|
{
|
||||||
virStoragePoolDefPtr def = virStoragePoolObjGetDef(pool);
|
virStoragePoolDefPtr def = virStoragePoolObjGetDef(pool);
|
||||||
|
|
||||||
if (def->source.adapter.type == VIR_STORAGE_ADAPTER_TYPE_FC_HOST) {
|
if (def->source.adapter.type == VIR_STORAGE_ADAPTER_TYPE_FC_HOST) {
|
||||||
|
virConnectPtr conn;
|
||||||
int ret;
|
int ret;
|
||||||
conn = virGetConnectNodeDev();
|
conn = virGetConnectNodeDev();
|
||||||
if (!conn)
|
if (!conn)
|
||||||
|
@ -38,8 +38,7 @@
|
|||||||
|
|
||||||
#define VIR_FROM_THIS VIR_FROM_STORAGE
|
#define VIR_FROM_THIS VIR_FROM_STORAGE
|
||||||
|
|
||||||
static int virStorageBackendSheepdogRefreshVol(virConnectPtr conn,
|
static int virStorageBackendSheepdogRefreshVol(virStoragePoolObjPtr pool,
|
||||||
virStoragePoolObjPtr pool,
|
|
||||||
virStorageVolDefPtr vol);
|
virStorageVolDefPtr vol);
|
||||||
|
|
||||||
void virStorageBackendSheepdogAddHostArg(virCommandPtr cmd,
|
void virStorageBackendSheepdogAddHostArg(virCommandPtr cmd,
|
||||||
@ -112,8 +111,7 @@ virStorageBackendSheepdogAddHostArg(virCommandPtr cmd,
|
|||||||
}
|
}
|
||||||
|
|
||||||
static int
|
static int
|
||||||
virStorageBackendSheepdogAddVolume(virConnectPtr conn ATTRIBUTE_UNUSED,
|
virStorageBackendSheepdogAddVolume(virStoragePoolObjPtr pool, const char *diskInfo)
|
||||||
virStoragePoolObjPtr pool, const char *diskInfo)
|
|
||||||
{
|
{
|
||||||
virStorageVolDefPtr vol = NULL;
|
virStorageVolDefPtr vol = NULL;
|
||||||
|
|
||||||
@ -128,7 +126,7 @@ virStorageBackendSheepdogAddVolume(virConnectPtr conn ATTRIBUTE_UNUSED,
|
|||||||
|
|
||||||
vol->type = VIR_STORAGE_VOL_NETWORK;
|
vol->type = VIR_STORAGE_VOL_NETWORK;
|
||||||
|
|
||||||
if (virStorageBackendSheepdogRefreshVol(conn, pool, vol) < 0)
|
if (virStorageBackendSheepdogRefreshVol(pool, vol) < 0)
|
||||||
goto error;
|
goto error;
|
||||||
|
|
||||||
if (virStoragePoolObjAddVol(pool, vol) < 0)
|
if (virStoragePoolObjAddVol(pool, vol) < 0)
|
||||||
@ -142,8 +140,7 @@ virStorageBackendSheepdogAddVolume(virConnectPtr conn ATTRIBUTE_UNUSED,
|
|||||||
}
|
}
|
||||||
|
|
||||||
static int
|
static int
|
||||||
virStorageBackendSheepdogRefreshAllVol(virConnectPtr conn ATTRIBUTE_UNUSED,
|
virStorageBackendSheepdogRefreshAllVol(virStoragePoolObjPtr pool)
|
||||||
virStoragePoolObjPtr pool)
|
|
||||||
{
|
{
|
||||||
int ret = -1;
|
int ret = -1;
|
||||||
char *output = NULL;
|
char *output = NULL;
|
||||||
@ -170,7 +167,7 @@ virStorageBackendSheepdogRefreshAllVol(virConnectPtr conn ATTRIBUTE_UNUSED,
|
|||||||
|
|
||||||
if (cells != NULL &&
|
if (cells != NULL &&
|
||||||
virStringListLength((const char * const *)cells) > 2) {
|
virStringListLength((const char * const *)cells) > 2) {
|
||||||
if (virStorageBackendSheepdogAddVolume(conn, pool, cells[1]) < 0)
|
if (virStorageBackendSheepdogAddVolume(pool, cells[1]) < 0)
|
||||||
goto cleanup;
|
goto cleanup;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -190,8 +187,7 @@ virStorageBackendSheepdogRefreshAllVol(virConnectPtr conn ATTRIBUTE_UNUSED,
|
|||||||
|
|
||||||
|
|
||||||
static int
|
static int
|
||||||
virStorageBackendSheepdogRefreshPool(virConnectPtr conn ATTRIBUTE_UNUSED,
|
virStorageBackendSheepdogRefreshPool(virStoragePoolObjPtr pool)
|
||||||
virStoragePoolObjPtr pool)
|
|
||||||
{
|
{
|
||||||
int ret = -1;
|
int ret = -1;
|
||||||
char *output = NULL;
|
char *output = NULL;
|
||||||
@ -207,7 +203,7 @@ virStorageBackendSheepdogRefreshPool(virConnectPtr conn ATTRIBUTE_UNUSED,
|
|||||||
output) < 0)
|
output) < 0)
|
||||||
goto cleanup;
|
goto cleanup;
|
||||||
|
|
||||||
ret = virStorageBackendSheepdogRefreshAllVol(conn, pool);
|
ret = virStorageBackendSheepdogRefreshAllVol(pool);
|
||||||
cleanup:
|
cleanup:
|
||||||
virCommandFree(cmd);
|
virCommandFree(cmd);
|
||||||
VIR_FREE(output);
|
VIR_FREE(output);
|
||||||
@ -216,8 +212,7 @@ virStorageBackendSheepdogRefreshPool(virConnectPtr conn ATTRIBUTE_UNUSED,
|
|||||||
|
|
||||||
|
|
||||||
static int
|
static int
|
||||||
virStorageBackendSheepdogDeleteVol(virConnectPtr conn ATTRIBUTE_UNUSED,
|
virStorageBackendSheepdogDeleteVol(virStoragePoolObjPtr pool,
|
||||||
virStoragePoolObjPtr pool,
|
|
||||||
virStorageVolDefPtr vol,
|
virStorageVolDefPtr vol,
|
||||||
unsigned int flags)
|
unsigned int flags)
|
||||||
{
|
{
|
||||||
@ -234,8 +229,7 @@ virStorageBackendSheepdogDeleteVol(virConnectPtr conn ATTRIBUTE_UNUSED,
|
|||||||
|
|
||||||
|
|
||||||
static int
|
static int
|
||||||
virStorageBackendSheepdogCreateVol(virConnectPtr conn ATTRIBUTE_UNUSED,
|
virStorageBackendSheepdogCreateVol(virStoragePoolObjPtr pool,
|
||||||
virStoragePoolObjPtr pool,
|
|
||||||
virStorageVolDefPtr vol)
|
virStorageVolDefPtr vol)
|
||||||
{
|
{
|
||||||
virStoragePoolDefPtr def = virStoragePoolObjGetDef(pool);
|
virStoragePoolDefPtr def = virStoragePoolObjGetDef(pool);
|
||||||
@ -263,8 +257,7 @@ virStorageBackendSheepdogCreateVol(virConnectPtr conn ATTRIBUTE_UNUSED,
|
|||||||
|
|
||||||
|
|
||||||
static int
|
static int
|
||||||
virStorageBackendSheepdogBuildVol(virConnectPtr conn ATTRIBUTE_UNUSED,
|
virStorageBackendSheepdogBuildVol(virStoragePoolObjPtr pool,
|
||||||
virStoragePoolObjPtr pool,
|
|
||||||
virStorageVolDefPtr vol,
|
virStorageVolDefPtr vol,
|
||||||
unsigned int flags)
|
unsigned int flags)
|
||||||
{
|
{
|
||||||
@ -354,8 +347,7 @@ virStorageBackendSheepdogParseVdiList(virStorageVolDefPtr vol,
|
|||||||
}
|
}
|
||||||
|
|
||||||
static int
|
static int
|
||||||
virStorageBackendSheepdogRefreshVol(virConnectPtr conn ATTRIBUTE_UNUSED,
|
virStorageBackendSheepdogRefreshVol(virStoragePoolObjPtr pool,
|
||||||
virStoragePoolObjPtr pool,
|
|
||||||
virStorageVolDefPtr vol)
|
virStorageVolDefPtr vol)
|
||||||
{
|
{
|
||||||
int ret;
|
int ret;
|
||||||
@ -389,8 +381,7 @@ virStorageBackendSheepdogRefreshVol(virConnectPtr conn ATTRIBUTE_UNUSED,
|
|||||||
|
|
||||||
|
|
||||||
static int
|
static int
|
||||||
virStorageBackendSheepdogResizeVol(virConnectPtr conn ATTRIBUTE_UNUSED,
|
virStorageBackendSheepdogResizeVol(virStoragePoolObjPtr pool,
|
||||||
virStoragePoolObjPtr pool,
|
|
||||||
virStorageVolDefPtr vol,
|
virStorageVolDefPtr vol,
|
||||||
unsigned long long capacity,
|
unsigned long long capacity,
|
||||||
unsigned int flags)
|
unsigned int flags)
|
||||||
|
@ -17,7 +17,6 @@ VIR_LOG_INIT("storage.storage_backend_vstorage");
|
|||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @conn connection to report errors against
|
|
||||||
* @pool storage pool to build
|
* @pool storage pool to build
|
||||||
* @flags controls the pool formatting behaviour
|
* @flags controls the pool formatting behaviour
|
||||||
*
|
*
|
||||||
@ -26,8 +25,7 @@ VIR_LOG_INIT("storage.storage_backend_vstorage");
|
|||||||
* Returns 0 on success, -1 on error
|
* Returns 0 on success, -1 on error
|
||||||
*/
|
*/
|
||||||
static int
|
static int
|
||||||
virStorageBackendVzPoolBuild(virConnectPtr conn ATTRIBUTE_UNUSED,
|
virStorageBackendVzPoolBuild(virStoragePoolObjPtr pool,
|
||||||
virStoragePoolObjPtr pool,
|
|
||||||
unsigned int flags)
|
unsigned int flags)
|
||||||
{
|
{
|
||||||
virCheckFlags(0, -1);
|
virCheckFlags(0, -1);
|
||||||
@ -37,8 +35,7 @@ virStorageBackendVzPoolBuild(virConnectPtr conn ATTRIBUTE_UNUSED,
|
|||||||
|
|
||||||
|
|
||||||
static int
|
static int
|
||||||
virStorageBackendVzPoolStart(virConnectPtr conn ATTRIBUTE_UNUSED,
|
virStorageBackendVzPoolStart(virStoragePoolObjPtr pool)
|
||||||
virStoragePoolObjPtr pool)
|
|
||||||
{
|
{
|
||||||
int ret = -1;
|
int ret = -1;
|
||||||
virStoragePoolDefPtr def = virStoragePoolObjGetDef(pool);
|
virStoragePoolDefPtr def = virStoragePoolObjGetDef(pool);
|
||||||
@ -125,8 +122,7 @@ virStorageBackendVzIsMounted(virStoragePoolObjPtr pool)
|
|||||||
|
|
||||||
|
|
||||||
static int
|
static int
|
||||||
virStorageBackendVzPoolStop(virConnectPtr conn ATTRIBUTE_UNUSED,
|
virStorageBackendVzPoolStop(virStoragePoolObjPtr pool)
|
||||||
virStoragePoolObjPtr pool)
|
|
||||||
{
|
{
|
||||||
virStoragePoolDefPtr def = virStoragePoolObjGetDef(pool);
|
virStoragePoolDefPtr def = virStoragePoolObjGetDef(pool);
|
||||||
virCommandPtr cmd = NULL;
|
virCommandPtr cmd = NULL;
|
||||||
|
@ -228,8 +228,7 @@ virStorageBackendZFSFindVols(virStoragePoolObjPtr pool,
|
|||||||
}
|
}
|
||||||
|
|
||||||
static int
|
static int
|
||||||
virStorageBackendZFSRefreshPool(virConnectPtr conn ATTRIBUTE_UNUSED,
|
virStorageBackendZFSRefreshPool(virStoragePoolObjPtr pool ATTRIBUTE_UNUSED)
|
||||||
virStoragePoolObjPtr pool ATTRIBUTE_UNUSED)
|
|
||||||
{
|
{
|
||||||
virStoragePoolDefPtr def = virStoragePoolObjGetDef(pool);
|
virStoragePoolDefPtr def = virStoragePoolObjGetDef(pool);
|
||||||
virCommandPtr cmd = NULL;
|
virCommandPtr cmd = NULL;
|
||||||
@ -305,8 +304,7 @@ virStorageBackendZFSRefreshPool(virConnectPtr conn ATTRIBUTE_UNUSED,
|
|||||||
}
|
}
|
||||||
|
|
||||||
static int
|
static int
|
||||||
virStorageBackendZFSCreateVol(virConnectPtr conn ATTRIBUTE_UNUSED,
|
virStorageBackendZFSCreateVol(virStoragePoolObjPtr pool,
|
||||||
virStoragePoolObjPtr pool,
|
|
||||||
virStorageVolDefPtr vol)
|
virStorageVolDefPtr vol)
|
||||||
{
|
{
|
||||||
virStoragePoolDefPtr def = virStoragePoolObjGetDef(pool);
|
virStoragePoolDefPtr def = virStoragePoolObjGetDef(pool);
|
||||||
@ -377,8 +375,7 @@ virStorageBackendZFSCreateVol(virConnectPtr conn ATTRIBUTE_UNUSED,
|
|||||||
}
|
}
|
||||||
|
|
||||||
static int
|
static int
|
||||||
virStorageBackendZFSDeleteVol(virConnectPtr conn ATTRIBUTE_UNUSED,
|
virStorageBackendZFSDeleteVol(virStoragePoolObjPtr pool,
|
||||||
virStoragePoolObjPtr pool,
|
|
||||||
virStorageVolDefPtr vol,
|
virStorageVolDefPtr vol,
|
||||||
unsigned int flags)
|
unsigned int flags)
|
||||||
{
|
{
|
||||||
@ -403,8 +400,7 @@ virStorageBackendZFSDeleteVol(virConnectPtr conn ATTRIBUTE_UNUSED,
|
|||||||
}
|
}
|
||||||
|
|
||||||
static int
|
static int
|
||||||
virStorageBackendZFSBuildPool(virConnectPtr conn ATTRIBUTE_UNUSED,
|
virStorageBackendZFSBuildPool(virStoragePoolObjPtr pool,
|
||||||
virStoragePoolObjPtr pool,
|
|
||||||
unsigned int flags)
|
unsigned int flags)
|
||||||
{
|
{
|
||||||
virStoragePoolDefPtr def = virStoragePoolObjGetDef(pool);
|
virStoragePoolDefPtr def = virStoragePoolObjGetDef(pool);
|
||||||
@ -437,8 +433,7 @@ virStorageBackendZFSBuildPool(virConnectPtr conn ATTRIBUTE_UNUSED,
|
|||||||
}
|
}
|
||||||
|
|
||||||
static int
|
static int
|
||||||
virStorageBackendZFSDeletePool(virConnectPtr conn ATTRIBUTE_UNUSED,
|
virStorageBackendZFSDeletePool(virStoragePoolObjPtr pool,
|
||||||
virStoragePoolObjPtr pool,
|
|
||||||
unsigned int flags)
|
unsigned int flags)
|
||||||
{
|
{
|
||||||
virStoragePoolDefPtr def = virStoragePoolObjGetDef(pool);
|
virStoragePoolDefPtr def = virStoragePoolObjGetDef(pool);
|
||||||
|
@ -136,9 +136,9 @@ storagePoolUpdateStateCallback(virStoragePoolObjPtr obj,
|
|||||||
*/
|
*/
|
||||||
if (active) {
|
if (active) {
|
||||||
virStoragePoolObjClearVols(obj);
|
virStoragePoolObjClearVols(obj);
|
||||||
if (backend->refreshPool(NULL, obj) < 0) {
|
if (backend->refreshPool(obj) < 0) {
|
||||||
if (backend->stopPool)
|
if (backend->stopPool)
|
||||||
backend->stopPool(NULL, obj);
|
backend->stopPool(obj);
|
||||||
virReportError(VIR_ERR_INTERNAL_ERROR,
|
virReportError(VIR_ERR_INTERNAL_ERROR,
|
||||||
_("Failed to restart storage pool '%s': %s"),
|
_("Failed to restart storage pool '%s': %s"),
|
||||||
def->name, virGetLastErrorMessage());
|
def->name, virGetLastErrorMessage());
|
||||||
@ -171,10 +171,9 @@ storagePoolUpdateAllState(void)
|
|||||||
|
|
||||||
static void
|
static void
|
||||||
storageDriverAutostartCallback(virStoragePoolObjPtr obj,
|
storageDriverAutostartCallback(virStoragePoolObjPtr obj,
|
||||||
const void *opaque)
|
const void *opaque ATTRIBUTE_UNUSED)
|
||||||
{
|
{
|
||||||
virStoragePoolDefPtr def = virStoragePoolObjGetDef(obj);
|
virStoragePoolDefPtr def = virStoragePoolObjGetDef(obj);
|
||||||
virConnectPtr conn = (virConnectPtr) opaque;
|
|
||||||
virStorageBackendPtr backend;
|
virStorageBackendPtr backend;
|
||||||
bool started = false;
|
bool started = false;
|
||||||
|
|
||||||
@ -184,7 +183,7 @@ storageDriverAutostartCallback(virStoragePoolObjPtr obj,
|
|||||||
if (virStoragePoolObjIsAutostart(obj) &&
|
if (virStoragePoolObjIsAutostart(obj) &&
|
||||||
!virStoragePoolObjIsActive(obj)) {
|
!virStoragePoolObjIsActive(obj)) {
|
||||||
if (backend->startPool &&
|
if (backend->startPool &&
|
||||||
backend->startPool(conn, obj) < 0) {
|
backend->startPool(obj) < 0) {
|
||||||
virReportError(VIR_ERR_INTERNAL_ERROR,
|
virReportError(VIR_ERR_INTERNAL_ERROR,
|
||||||
_("Failed to autostart storage pool '%s': %s"),
|
_("Failed to autostart storage pool '%s': %s"),
|
||||||
def->name, virGetLastErrorMessage());
|
def->name, virGetLastErrorMessage());
|
||||||
@ -200,11 +199,11 @@ storageDriverAutostartCallback(virStoragePoolObjPtr obj,
|
|||||||
stateFile = virFileBuildPath(driver->stateDir, def->name, ".xml");
|
stateFile = virFileBuildPath(driver->stateDir, def->name, ".xml");
|
||||||
if (!stateFile ||
|
if (!stateFile ||
|
||||||
virStoragePoolSaveState(stateFile, def) < 0 ||
|
virStoragePoolSaveState(stateFile, def) < 0 ||
|
||||||
backend->refreshPool(conn, obj) < 0) {
|
backend->refreshPool(obj) < 0) {
|
||||||
if (stateFile)
|
if (stateFile)
|
||||||
unlink(stateFile);
|
unlink(stateFile);
|
||||||
if (backend->stopPool)
|
if (backend->stopPool)
|
||||||
backend->stopPool(conn, obj);
|
backend->stopPool(obj);
|
||||||
virReportError(VIR_ERR_INTERNAL_ERROR,
|
virReportError(VIR_ERR_INTERNAL_ERROR,
|
||||||
_("Failed to autostart storage pool '%s': %s"),
|
_("Failed to autostart storage pool '%s': %s"),
|
||||||
def->name, virGetLastErrorMessage());
|
def->name, virGetLastErrorMessage());
|
||||||
@ -221,16 +220,9 @@ storageDriverAutostart(void)
|
|||||||
{
|
{
|
||||||
virConnectPtr conn = NULL;
|
virConnectPtr conn = NULL;
|
||||||
|
|
||||||
/* XXX Remove hardcoding of QEMU URI */
|
|
||||||
if (driver->privileged)
|
|
||||||
conn = virConnectOpen("qemu:///system");
|
|
||||||
else
|
|
||||||
conn = virConnectOpen("qemu:///session");
|
|
||||||
/* Ignoring NULL conn - let backends decide */
|
|
||||||
|
|
||||||
virStoragePoolObjListForEach(driver->pools,
|
virStoragePoolObjListForEach(driver->pools,
|
||||||
storageDriverAutostartCallback,
|
storageDriverAutostartCallback,
|
||||||
conn);
|
NULL);
|
||||||
|
|
||||||
virObjectUnref(conn);
|
virObjectUnref(conn);
|
||||||
}
|
}
|
||||||
@ -652,7 +644,7 @@ storageConnectFindStoragePoolSources(virConnectPtr conn,
|
|||||||
goto cleanup;
|
goto cleanup;
|
||||||
}
|
}
|
||||||
|
|
||||||
ret = backend->findPoolSources(conn, srcSpec, flags);
|
ret = backend->findPoolSources(srcSpec, flags);
|
||||||
|
|
||||||
cleanup:
|
cleanup:
|
||||||
return ret;
|
return ret;
|
||||||
@ -752,7 +744,7 @@ storagePoolCreateXML(virConnectPtr conn,
|
|||||||
|
|
||||||
if (build_flags ||
|
if (build_flags ||
|
||||||
(flags & VIR_STORAGE_POOL_CREATE_WITH_BUILD)) {
|
(flags & VIR_STORAGE_POOL_CREATE_WITH_BUILD)) {
|
||||||
if (backend->buildPool(conn, obj, build_flags) < 0) {
|
if (backend->buildPool(obj, build_flags) < 0) {
|
||||||
virStoragePoolObjRemove(driver->pools, obj);
|
virStoragePoolObjRemove(driver->pools, obj);
|
||||||
virObjectUnref(obj);
|
virObjectUnref(obj);
|
||||||
obj = NULL;
|
obj = NULL;
|
||||||
@ -762,7 +754,7 @@ storagePoolCreateXML(virConnectPtr conn,
|
|||||||
}
|
}
|
||||||
|
|
||||||
if (backend->startPool &&
|
if (backend->startPool &&
|
||||||
backend->startPool(conn, obj) < 0) {
|
backend->startPool(obj) < 0) {
|
||||||
virStoragePoolObjRemove(driver->pools, obj);
|
virStoragePoolObjRemove(driver->pools, obj);
|
||||||
virObjectUnref(obj);
|
virObjectUnref(obj);
|
||||||
obj = NULL;
|
obj = NULL;
|
||||||
@ -773,11 +765,11 @@ storagePoolCreateXML(virConnectPtr conn,
|
|||||||
|
|
||||||
virStoragePoolObjClearVols(obj);
|
virStoragePoolObjClearVols(obj);
|
||||||
if (!stateFile || virStoragePoolSaveState(stateFile, def) < 0 ||
|
if (!stateFile || virStoragePoolSaveState(stateFile, def) < 0 ||
|
||||||
backend->refreshPool(conn, obj) < 0) {
|
backend->refreshPool(obj) < 0) {
|
||||||
if (stateFile)
|
if (stateFile)
|
||||||
unlink(stateFile);
|
unlink(stateFile);
|
||||||
if (backend->stopPool)
|
if (backend->stopPool)
|
||||||
backend->stopPool(conn, obj);
|
backend->stopPool(obj);
|
||||||
virStoragePoolObjRemove(driver->pools, obj);
|
virStoragePoolObjRemove(driver->pools, obj);
|
||||||
virObjectUnref(obj);
|
virObjectUnref(obj);
|
||||||
obj = NULL;
|
obj = NULL;
|
||||||
@ -964,25 +956,25 @@ storagePoolCreate(virStoragePoolPtr pool,
|
|||||||
|
|
||||||
if (build_flags ||
|
if (build_flags ||
|
||||||
(flags & VIR_STORAGE_POOL_CREATE_WITH_BUILD)) {
|
(flags & VIR_STORAGE_POOL_CREATE_WITH_BUILD)) {
|
||||||
if (backend->buildPool(pool->conn, obj, build_flags) < 0)
|
if (backend->buildPool(obj, build_flags) < 0)
|
||||||
goto cleanup;
|
goto cleanup;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
VIR_INFO("Starting up storage pool '%s'", def->name);
|
VIR_INFO("Starting up storage pool '%s'", def->name);
|
||||||
if (backend->startPool &&
|
if (backend->startPool &&
|
||||||
backend->startPool(pool->conn, obj) < 0)
|
backend->startPool(obj) < 0)
|
||||||
goto cleanup;
|
goto cleanup;
|
||||||
|
|
||||||
stateFile = virFileBuildPath(driver->stateDir, def->name, ".xml");
|
stateFile = virFileBuildPath(driver->stateDir, def->name, ".xml");
|
||||||
|
|
||||||
virStoragePoolObjClearVols(obj);
|
virStoragePoolObjClearVols(obj);
|
||||||
if (!stateFile || virStoragePoolSaveState(stateFile, def) < 0 ||
|
if (!stateFile || virStoragePoolSaveState(stateFile, def) < 0 ||
|
||||||
backend->refreshPool(pool->conn, obj) < 0) {
|
backend->refreshPool(obj) < 0) {
|
||||||
if (stateFile)
|
if (stateFile)
|
||||||
unlink(stateFile);
|
unlink(stateFile);
|
||||||
if (backend->stopPool)
|
if (backend->stopPool)
|
||||||
backend->stopPool(pool->conn, obj);
|
backend->stopPool(obj);
|
||||||
goto cleanup;
|
goto cleanup;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -1030,7 +1022,7 @@ storagePoolBuild(virStoragePoolPtr pool,
|
|||||||
}
|
}
|
||||||
|
|
||||||
if (backend->buildPool &&
|
if (backend->buildPool &&
|
||||||
backend->buildPool(pool->conn, obj, flags) < 0)
|
backend->buildPool(obj, flags) < 0)
|
||||||
goto cleanup;
|
goto cleanup;
|
||||||
|
|
||||||
event = virStoragePoolEventLifecycleNew(def->name,
|
event = virStoragePoolEventLifecycleNew(def->name,
|
||||||
@ -1090,7 +1082,7 @@ storagePoolDestroy(virStoragePoolPtr pool)
|
|||||||
VIR_FREE(stateFile);
|
VIR_FREE(stateFile);
|
||||||
|
|
||||||
if (backend->stopPool &&
|
if (backend->stopPool &&
|
||||||
backend->stopPool(pool->conn, obj) < 0)
|
backend->stopPool(obj) < 0)
|
||||||
goto cleanup;
|
goto cleanup;
|
||||||
|
|
||||||
virStoragePoolObjClearVols(obj);
|
virStoragePoolObjClearVols(obj);
|
||||||
@ -1161,7 +1153,7 @@ storagePoolDelete(virStoragePoolPtr pool,
|
|||||||
"%s", _("pool does not support pool deletion"));
|
"%s", _("pool does not support pool deletion"));
|
||||||
goto cleanup;
|
goto cleanup;
|
||||||
}
|
}
|
||||||
if (backend->deletePool(pool->conn, obj, flags) < 0)
|
if (backend->deletePool(obj, flags) < 0)
|
||||||
goto cleanup;
|
goto cleanup;
|
||||||
|
|
||||||
event = virStoragePoolEventLifecycleNew(def->name,
|
event = virStoragePoolEventLifecycleNew(def->name,
|
||||||
@ -1215,9 +1207,9 @@ storagePoolRefresh(virStoragePoolPtr pool,
|
|||||||
}
|
}
|
||||||
|
|
||||||
virStoragePoolObjClearVols(obj);
|
virStoragePoolObjClearVols(obj);
|
||||||
if (backend->refreshPool(pool->conn, obj) < 0) {
|
if (backend->refreshPool(obj) < 0) {
|
||||||
if (backend->stopPool)
|
if (backend->stopPool)
|
||||||
backend->stopPool(pool->conn, obj);
|
backend->stopPool(obj);
|
||||||
|
|
||||||
event = virStoragePoolEventLifecycleNew(def->name,
|
event = virStoragePoolEventLifecycleNew(def->name,
|
||||||
def->uuid,
|
def->uuid,
|
||||||
@ -1724,8 +1716,7 @@ storagePoolLookupByTargetPath(virConnectPtr conn,
|
|||||||
|
|
||||||
|
|
||||||
static int
|
static int
|
||||||
storageVolDeleteInternal(virStorageVolPtr vol,
|
storageVolDeleteInternal(virStorageBackendPtr backend,
|
||||||
virStorageBackendPtr backend,
|
|
||||||
virStoragePoolObjPtr obj,
|
virStoragePoolObjPtr obj,
|
||||||
virStorageVolDefPtr voldef,
|
virStorageVolDefPtr voldef,
|
||||||
unsigned int flags,
|
unsigned int flags,
|
||||||
@ -1741,7 +1732,7 @@ storageVolDeleteInternal(virStorageVolPtr vol,
|
|||||||
goto cleanup;
|
goto cleanup;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (backend->deleteVol(vol->conn, obj, voldef, flags) < 0)
|
if (backend->deleteVol(obj, voldef, flags) < 0)
|
||||||
goto cleanup;
|
goto cleanup;
|
||||||
|
|
||||||
/* The disk backend updated the pool data including removing the
|
/* The disk backend updated the pool data including removing the
|
||||||
@ -1839,7 +1830,7 @@ storageVolDelete(virStorageVolPtr vol,
|
|||||||
goto cleanup;
|
goto cleanup;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (storageVolDeleteInternal(vol, backend, obj, voldef, flags, true) < 0)
|
if (storageVolDeleteInternal(backend, obj, voldef, flags, true) < 0)
|
||||||
goto cleanup;
|
goto cleanup;
|
||||||
|
|
||||||
ret = 0;
|
ret = 0;
|
||||||
@ -1907,7 +1898,7 @@ storageVolCreateXML(virStoragePoolPtr pool,
|
|||||||
/* Wipe any key the user may have suggested, as volume creation
|
/* Wipe any key the user may have suggested, as volume creation
|
||||||
* will generate the canonical key. */
|
* will generate the canonical key. */
|
||||||
VIR_FREE(voldef->key);
|
VIR_FREE(voldef->key);
|
||||||
if (backend->createVol(pool->conn, obj, voldef) < 0)
|
if (backend->createVol(obj, voldef) < 0)
|
||||||
goto cleanup;
|
goto cleanup;
|
||||||
|
|
||||||
if (!(newvol = virGetStorageVol(pool->conn, def->name, voldef->name,
|
if (!(newvol = virGetStorageVol(pool->conn, def->name, voldef->name,
|
||||||
@ -1938,7 +1929,7 @@ storageVolCreateXML(virStoragePoolPtr pool,
|
|||||||
voldef->building = true;
|
voldef->building = true;
|
||||||
virObjectUnlock(obj);
|
virObjectUnlock(obj);
|
||||||
|
|
||||||
buildret = backend->buildVol(pool->conn, obj, buildvoldef, flags);
|
buildret = backend->buildVol(obj, buildvoldef, flags);
|
||||||
|
|
||||||
VIR_FREE(buildvoldef);
|
VIR_FREE(buildvoldef);
|
||||||
|
|
||||||
@ -1957,8 +1948,8 @@ storageVolCreateXML(virStoragePoolPtr pool,
|
|||||||
}
|
}
|
||||||
|
|
||||||
if (backend->refreshVol &&
|
if (backend->refreshVol &&
|
||||||
backend->refreshVol(pool->conn, obj, voldef) < 0) {
|
backend->refreshVol(obj, voldef) < 0) {
|
||||||
storageVolDeleteInternal(newvol, backend, obj, voldef,
|
storageVolDeleteInternal(backend, obj, voldef,
|
||||||
0, false);
|
0, false);
|
||||||
voldef = NULL;
|
voldef = NULL;
|
||||||
goto cleanup;
|
goto cleanup;
|
||||||
@ -2097,14 +2088,14 @@ storageVolCreateXMLFrom(virStoragePoolPtr pool,
|
|||||||
}
|
}
|
||||||
|
|
||||||
if (backend->refreshVol &&
|
if (backend->refreshVol &&
|
||||||
backend->refreshVol(pool->conn, obj, voldefsrc) < 0)
|
backend->refreshVol(obj, voldefsrc) < 0)
|
||||||
goto cleanup;
|
goto cleanup;
|
||||||
|
|
||||||
/* 'Define' the new volume so we get async progress reporting.
|
/* 'Define' the new volume so we get async progress reporting.
|
||||||
* Wipe any key the user may have suggested, as volume creation
|
* Wipe any key the user may have suggested, as volume creation
|
||||||
* will generate the canonical key. */
|
* will generate the canonical key. */
|
||||||
VIR_FREE(voldef->key);
|
VIR_FREE(voldef->key);
|
||||||
if (backend->createVol(pool->conn, obj, voldef) < 0)
|
if (backend->createVol(obj, voldef) < 0)
|
||||||
goto cleanup;
|
goto cleanup;
|
||||||
|
|
||||||
/* Make a shallow copy of the 'defined' volume definition, since the
|
/* Make a shallow copy of the 'defined' volume definition, since the
|
||||||
@ -2135,7 +2126,7 @@ storageVolCreateXMLFrom(virStoragePoolPtr pool,
|
|||||||
virObjectUnlock(objsrc);
|
virObjectUnlock(objsrc);
|
||||||
}
|
}
|
||||||
|
|
||||||
buildret = backend->buildVolFrom(pool->conn, obj, shadowvol, voldefsrc, flags);
|
buildret = backend->buildVolFrom(obj, shadowvol, voldefsrc, flags);
|
||||||
|
|
||||||
virObjectLock(obj);
|
virObjectLock(obj);
|
||||||
if (objsrc)
|
if (objsrc)
|
||||||
@ -2152,8 +2143,8 @@ storageVolCreateXMLFrom(virStoragePoolPtr pool,
|
|||||||
|
|
||||||
if (buildret < 0 ||
|
if (buildret < 0 ||
|
||||||
(backend->refreshVol &&
|
(backend->refreshVol &&
|
||||||
backend->refreshVol(pool->conn, obj, voldef) < 0)) {
|
backend->refreshVol(obj, voldef) < 0)) {
|
||||||
storageVolDeleteInternal(newvol, backend, obj, voldef, 0, false);
|
storageVolDeleteInternal(backend, obj, voldef, 0, false);
|
||||||
voldef = NULL;
|
voldef = NULL;
|
||||||
goto cleanup;
|
goto cleanup;
|
||||||
}
|
}
|
||||||
@ -2216,7 +2207,7 @@ storageVolDownload(virStorageVolPtr vol,
|
|||||||
goto cleanup;
|
goto cleanup;
|
||||||
}
|
}
|
||||||
|
|
||||||
ret = backend->downloadVol(vol->conn, obj, voldef, stream,
|
ret = backend->downloadVol(obj, voldef, stream,
|
||||||
offset, length, flags);
|
offset, length, flags);
|
||||||
|
|
||||||
cleanup:
|
cleanup:
|
||||||
@ -2318,7 +2309,7 @@ virStorageVolPoolRefreshThread(void *opaque)
|
|||||||
goto cleanup;
|
goto cleanup;
|
||||||
|
|
||||||
virStoragePoolObjClearVols(obj);
|
virStoragePoolObjClearVols(obj);
|
||||||
if (backend->refreshPool(NULL, obj) < 0)
|
if (backend->refreshPool(obj) < 0)
|
||||||
VIR_DEBUG("Failed to refresh storage pool");
|
VIR_DEBUG("Failed to refresh storage pool");
|
||||||
|
|
||||||
event = virStoragePoolEventRefreshNew(def->name, def->uuid);
|
event = virStoragePoolEventRefreshNew(def->name, def->uuid);
|
||||||
@ -2411,7 +2402,7 @@ storageVolUpload(virStorageVolPtr vol,
|
|||||||
VIR_STRDUP(cbdata->vol_path, voldef->target.path) < 0)
|
VIR_STRDUP(cbdata->vol_path, voldef->target.path) < 0)
|
||||||
goto cleanup;
|
goto cleanup;
|
||||||
|
|
||||||
if ((ret = backend->uploadVol(vol->conn, obj, voldef, stream,
|
if ((ret = backend->uploadVol(obj, voldef, stream,
|
||||||
offset, length, flags)) < 0)
|
offset, length, flags)) < 0)
|
||||||
goto cleanup;
|
goto cleanup;
|
||||||
|
|
||||||
@ -2509,7 +2500,7 @@ storageVolResize(virStorageVolPtr vol,
|
|||||||
goto cleanup;
|
goto cleanup;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (backend->resizeVol(vol->conn, obj, voldef, abs_capacity, flags) < 0)
|
if (backend->resizeVol(obj, voldef, abs_capacity, flags) < 0)
|
||||||
goto cleanup;
|
goto cleanup;
|
||||||
|
|
||||||
voldef->target.capacity = abs_capacity;
|
voldef->target.capacity = abs_capacity;
|
||||||
@ -2579,7 +2570,7 @@ storageVolWipePattern(virStorageVolPtr vol,
|
|||||||
goto cleanup;
|
goto cleanup;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (backend->wipeVol(vol->conn, obj, voldef, algorithm, flags) < 0)
|
if (backend->wipeVol(obj, voldef, algorithm, flags) < 0)
|
||||||
goto cleanup;
|
goto cleanup;
|
||||||
|
|
||||||
/* Instead of using the refreshVol, since much changes on the target
|
/* Instead of using the refreshVol, since much changes on the target
|
||||||
@ -2626,7 +2617,7 @@ storageVolGetInfoFlags(virStorageVolPtr vol,
|
|||||||
goto cleanup;
|
goto cleanup;
|
||||||
|
|
||||||
if (backend->refreshVol &&
|
if (backend->refreshVol &&
|
||||||
backend->refreshVol(vol->conn, obj, voldef) < 0)
|
backend->refreshVol(obj, voldef) < 0)
|
||||||
goto cleanup;
|
goto cleanup;
|
||||||
|
|
||||||
memset(info, 0, sizeof(*info));
|
memset(info, 0, sizeof(*info));
|
||||||
@ -2672,7 +2663,7 @@ storageVolGetXMLDesc(virStorageVolPtr vol,
|
|||||||
goto cleanup;
|
goto cleanup;
|
||||||
|
|
||||||
if (backend->refreshVol &&
|
if (backend->refreshVol &&
|
||||||
backend->refreshVol(vol->conn, obj, voldef) < 0)
|
backend->refreshVol(obj, voldef) < 0)
|
||||||
goto cleanup;
|
goto cleanup;
|
||||||
|
|
||||||
ret = virStorageVolDefFormat(def, voldef);
|
ret = virStorageVolDefFormat(def, voldef);
|
||||||
|
@ -222,8 +222,7 @@ virStorageBackendCopyToFD(virStorageVolDefPtr vol,
|
|||||||
}
|
}
|
||||||
|
|
||||||
static int
|
static int
|
||||||
storageBackendCreateBlockFrom(virConnectPtr conn ATTRIBUTE_UNUSED,
|
storageBackendCreateBlockFrom(virStoragePoolObjPtr pool ATTRIBUTE_UNUSED,
|
||||||
virStoragePoolObjPtr pool ATTRIBUTE_UNUSED,
|
|
||||||
virStorageVolDefPtr vol,
|
virStorageVolDefPtr vol,
|
||||||
virStorageVolDefPtr inputvol,
|
virStorageVolDefPtr inputvol,
|
||||||
unsigned int flags)
|
unsigned int flags)
|
||||||
@ -390,8 +389,7 @@ createRawFile(int fd, virStorageVolDefPtr vol,
|
|||||||
}
|
}
|
||||||
|
|
||||||
static int
|
static int
|
||||||
storageBackendCreateRaw(virConnectPtr conn ATTRIBUTE_UNUSED,
|
storageBackendCreateRaw(virStoragePoolObjPtr pool,
|
||||||
virStoragePoolObjPtr pool,
|
|
||||||
virStorageVolDefPtr vol,
|
virStorageVolDefPtr vol,
|
||||||
virStorageVolDefPtr inputvol,
|
virStorageVolDefPtr inputvol,
|
||||||
unsigned int flags)
|
unsigned int flags)
|
||||||
@ -690,8 +688,7 @@ virStorageBackendCreateExecCommand(virStoragePoolObjPtr pool,
|
|||||||
/* Create ploop directory with ploop image and DiskDescriptor.xml
|
/* Create ploop directory with ploop image and DiskDescriptor.xml
|
||||||
* if function fails to create image file the directory will be deleted.*/
|
* if function fails to create image file the directory will be deleted.*/
|
||||||
static int
|
static int
|
||||||
storageBackendCreatePloop(virConnectPtr conn ATTRIBUTE_UNUSED,
|
storageBackendCreatePloop(virStoragePoolObjPtr pool ATTRIBUTE_UNUSED,
|
||||||
virStoragePoolObjPtr pool ATTRIBUTE_UNUSED,
|
|
||||||
virStorageVolDefPtr vol,
|
virStorageVolDefPtr vol,
|
||||||
virStorageVolDefPtr inputvol,
|
virStorageVolDefPtr inputvol,
|
||||||
unsigned int flags)
|
unsigned int flags)
|
||||||
@ -1376,8 +1373,7 @@ storageBackendCreateQemuImgSecretPath(virStoragePoolObjPtr pool,
|
|||||||
|
|
||||||
|
|
||||||
static int
|
static int
|
||||||
storageBackendCreateQemuImg(virConnectPtr conn ATTRIBUTE_UNUSED,
|
storageBackendCreateQemuImg(virStoragePoolObjPtr pool,
|
||||||
virStoragePoolObjPtr pool,
|
|
||||||
virStorageVolDefPtr vol,
|
virStorageVolDefPtr vol,
|
||||||
virStorageVolDefPtr inputvol,
|
virStorageVolDefPtr inputvol,
|
||||||
unsigned int flags)
|
unsigned int flags)
|
||||||
@ -1459,7 +1455,7 @@ virStorageBackendCreateVolUsingQemuImg(virStoragePoolObjPtr pool,
|
|||||||
changeFormat = true;
|
changeFormat = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
ret = storageBackendCreateQemuImg(NULL, pool, vol, inputvol, flags);
|
ret = storageBackendCreateQemuImg(pool, vol, inputvol, flags);
|
||||||
|
|
||||||
if (changeFormat)
|
if (changeFormat)
|
||||||
vol->target.format = VIR_STORAGE_FILE_NONE;
|
vol->target.format = VIR_STORAGE_FILE_NONE;
|
||||||
@ -2078,8 +2074,7 @@ virStorageBackendStablePath(virStoragePoolObjPtr pool,
|
|||||||
|
|
||||||
/* Common/Local File System/Directory Volume API's */
|
/* Common/Local File System/Directory Volume API's */
|
||||||
static int
|
static int
|
||||||
createFileDir(virConnectPtr conn ATTRIBUTE_UNUSED,
|
createFileDir(virStoragePoolObjPtr pool,
|
||||||
virStoragePoolObjPtr pool,
|
|
||||||
virStorageVolDefPtr vol,
|
virStorageVolDefPtr vol,
|
||||||
virStorageVolDefPtr inputvol,
|
virStorageVolDefPtr inputvol,
|
||||||
unsigned int flags)
|
unsigned int flags)
|
||||||
@ -2125,8 +2120,7 @@ createFileDir(virConnectPtr conn ATTRIBUTE_UNUSED,
|
|||||||
* function), and can drop the parent pool lock during the (slow) allocation.
|
* function), and can drop the parent pool lock during the (slow) allocation.
|
||||||
*/
|
*/
|
||||||
int
|
int
|
||||||
virStorageBackendVolCreateLocal(virConnectPtr conn ATTRIBUTE_UNUSED,
|
virStorageBackendVolCreateLocal(virStoragePoolObjPtr pool,
|
||||||
virStoragePoolObjPtr pool,
|
|
||||||
virStorageVolDefPtr vol)
|
virStorageVolDefPtr vol)
|
||||||
{
|
{
|
||||||
virStoragePoolDefPtr def = virStoragePoolObjGetDef(pool);
|
virStoragePoolDefPtr def = virStoragePoolObjGetDef(pool);
|
||||||
@ -2164,8 +2158,7 @@ virStorageBackendVolCreateLocal(virConnectPtr conn ATTRIBUTE_UNUSED,
|
|||||||
|
|
||||||
|
|
||||||
static int
|
static int
|
||||||
storageBackendVolBuildLocal(virConnectPtr conn,
|
storageBackendVolBuildLocal(virStoragePoolObjPtr pool,
|
||||||
virStoragePoolObjPtr pool,
|
|
||||||
virStorageVolDefPtr vol,
|
virStorageVolDefPtr vol,
|
||||||
virStorageVolDefPtr inputvol,
|
virStorageVolDefPtr inputvol,
|
||||||
unsigned int flags)
|
unsigned int flags)
|
||||||
@ -2194,7 +2187,7 @@ storageBackendVolBuildLocal(virConnectPtr conn,
|
|||||||
create_func = storageBackendCreateQemuImg;
|
create_func = storageBackendCreateQemuImg;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (create_func(conn, pool, vol, inputvol, flags) < 0)
|
if (create_func(pool, vol, inputvol, flags) < 0)
|
||||||
return -1;
|
return -1;
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
@ -2206,12 +2199,11 @@ storageBackendVolBuildLocal(virConnectPtr conn,
|
|||||||
* special kinds of files
|
* special kinds of files
|
||||||
*/
|
*/
|
||||||
int
|
int
|
||||||
virStorageBackendVolBuildLocal(virConnectPtr conn,
|
virStorageBackendVolBuildLocal(virStoragePoolObjPtr pool,
|
||||||
virStoragePoolObjPtr pool,
|
|
||||||
virStorageVolDefPtr vol,
|
virStorageVolDefPtr vol,
|
||||||
unsigned int flags)
|
unsigned int flags)
|
||||||
{
|
{
|
||||||
return storageBackendVolBuildLocal(conn, pool, vol, NULL, flags);
|
return storageBackendVolBuildLocal(pool, vol, NULL, flags);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@ -2219,13 +2211,12 @@ virStorageBackendVolBuildLocal(virConnectPtr conn,
|
|||||||
* Create a storage vol using 'inputvol' as input
|
* Create a storage vol using 'inputvol' as input
|
||||||
*/
|
*/
|
||||||
int
|
int
|
||||||
virStorageBackendVolBuildFromLocal(virConnectPtr conn,
|
virStorageBackendVolBuildFromLocal(virStoragePoolObjPtr pool,
|
||||||
virStoragePoolObjPtr pool,
|
|
||||||
virStorageVolDefPtr vol,
|
virStorageVolDefPtr vol,
|
||||||
virStorageVolDefPtr inputvol,
|
virStorageVolDefPtr inputvol,
|
||||||
unsigned int flags)
|
unsigned int flags)
|
||||||
{
|
{
|
||||||
return storageBackendVolBuildLocal(conn, pool, vol, inputvol, flags);
|
return storageBackendVolBuildLocal(pool, vol, inputvol, flags);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@ -2233,8 +2224,7 @@ virStorageBackendVolBuildFromLocal(virConnectPtr conn,
|
|||||||
* Remove a volume - no support for BLOCK and NETWORK yet
|
* Remove a volume - no support for BLOCK and NETWORK yet
|
||||||
*/
|
*/
|
||||||
int
|
int
|
||||||
virStorageBackendVolDeleteLocal(virConnectPtr conn ATTRIBUTE_UNUSED,
|
virStorageBackendVolDeleteLocal(virStoragePoolObjPtr pool ATTRIBUTE_UNUSED,
|
||||||
virStoragePoolObjPtr pool ATTRIBUTE_UNUSED,
|
|
||||||
virStorageVolDefPtr vol,
|
virStorageVolDefPtr vol,
|
||||||
unsigned int flags)
|
unsigned int flags)
|
||||||
{
|
{
|
||||||
@ -2335,8 +2325,7 @@ storageBackendLoadDefaultSecrets(virStorageVolDefPtr vol)
|
|||||||
* Update info about a volume's capacity/allocation
|
* Update info about a volume's capacity/allocation
|
||||||
*/
|
*/
|
||||||
int
|
int
|
||||||
virStorageBackendVolRefreshLocal(virConnectPtr conn ATTRIBUTE_UNUSED,
|
virStorageBackendVolRefreshLocal(virStoragePoolObjPtr pool ATTRIBUTE_UNUSED,
|
||||||
virStoragePoolObjPtr pool ATTRIBUTE_UNUSED,
|
|
||||||
virStorageVolDefPtr vol)
|
virStorageVolDefPtr vol)
|
||||||
{
|
{
|
||||||
int ret;
|
int ret;
|
||||||
@ -2429,8 +2418,7 @@ storageBackendResizeQemuImg(virStoragePoolObjPtr pool,
|
|||||||
* Resize a volume
|
* Resize a volume
|
||||||
*/
|
*/
|
||||||
int
|
int
|
||||||
virStorageBackendVolResizeLocal(virConnectPtr conn ATTRIBUTE_UNUSED,
|
virStorageBackendVolResizeLocal(virStoragePoolObjPtr pool,
|
||||||
virStoragePoolObjPtr pool,
|
|
||||||
virStorageVolDefPtr vol,
|
virStorageVolDefPtr vol,
|
||||||
unsigned long long capacity,
|
unsigned long long capacity,
|
||||||
unsigned int flags)
|
unsigned int flags)
|
||||||
@ -2509,8 +2497,7 @@ storageBackendPloopHasSnapshots(char *path)
|
|||||||
|
|
||||||
|
|
||||||
int
|
int
|
||||||
virStorageBackendVolUploadLocal(virConnectPtr conn ATTRIBUTE_UNUSED,
|
virStorageBackendVolUploadLocal(virStoragePoolObjPtr pool ATTRIBUTE_UNUSED,
|
||||||
virStoragePoolObjPtr pool ATTRIBUTE_UNUSED,
|
|
||||||
virStorageVolDefPtr vol,
|
virStorageVolDefPtr vol,
|
||||||
virStreamPtr stream,
|
virStreamPtr stream,
|
||||||
unsigned long long offset,
|
unsigned long long offset,
|
||||||
@ -2556,8 +2543,7 @@ virStorageBackendVolUploadLocal(virConnectPtr conn ATTRIBUTE_UNUSED,
|
|||||||
}
|
}
|
||||||
|
|
||||||
int
|
int
|
||||||
virStorageBackendVolDownloadLocal(virConnectPtr conn ATTRIBUTE_UNUSED,
|
virStorageBackendVolDownloadLocal(virStoragePoolObjPtr pool ATTRIBUTE_UNUSED,
|
||||||
virStoragePoolObjPtr pool ATTRIBUTE_UNUSED,
|
|
||||||
virStorageVolDefPtr vol,
|
virStorageVolDefPtr vol,
|
||||||
virStreamPtr stream,
|
virStreamPtr stream,
|
||||||
unsigned long long offset,
|
unsigned long long offset,
|
||||||
@ -2854,8 +2840,7 @@ storageBackendVolWipePloop(virStorageVolDefPtr vol,
|
|||||||
|
|
||||||
|
|
||||||
int
|
int
|
||||||
virStorageBackendVolWipeLocal(virConnectPtr conn ATTRIBUTE_UNUSED,
|
virStorageBackendVolWipeLocal(virStoragePoolObjPtr pool ATTRIBUTE_UNUSED,
|
||||||
virStoragePoolObjPtr pool ATTRIBUTE_UNUSED,
|
|
||||||
virStorageVolDefPtr vol,
|
virStorageVolDefPtr vol,
|
||||||
unsigned int algorithm,
|
unsigned int algorithm,
|
||||||
unsigned int flags)
|
unsigned int flags)
|
||||||
@ -2954,8 +2939,7 @@ virStorageBackendBuildLocal(virStoragePoolObjPtr pool)
|
|||||||
* Returns 0 on success, -1 on error
|
* Returns 0 on success, -1 on error
|
||||||
*/
|
*/
|
||||||
int
|
int
|
||||||
virStorageBackendDeleteLocal(virConnectPtr conn ATTRIBUTE_UNUSED,
|
virStorageBackendDeleteLocal(virStoragePoolObjPtr pool,
|
||||||
virStoragePoolObjPtr pool,
|
|
||||||
unsigned int flags)
|
unsigned int flags)
|
||||||
{
|
{
|
||||||
virStoragePoolDefPtr def = virStoragePoolObjGetDef(pool);
|
virStoragePoolDefPtr def = virStoragePoolObjGetDef(pool);
|
||||||
@ -3696,8 +3680,7 @@ virStorageBackendRefreshVolTargetUpdate(virStorageVolDefPtr vol)
|
|||||||
* within it. This is non-recursive.
|
* within it. This is non-recursive.
|
||||||
*/
|
*/
|
||||||
int
|
int
|
||||||
virStorageBackendRefreshLocal(virConnectPtr conn ATTRIBUTE_UNUSED,
|
virStorageBackendRefreshLocal(virStoragePoolObjPtr pool)
|
||||||
virStoragePoolObjPtr pool)
|
|
||||||
{
|
{
|
||||||
virStoragePoolDefPtr def = virStoragePoolObjGetDef(pool);
|
virStoragePoolDefPtr def = virStoragePoolObjGetDef(pool);
|
||||||
DIR *dir;
|
DIR *dir;
|
||||||
|
@ -38,54 +38,45 @@ virStorageBackendBuildVolFrom
|
|||||||
virStorageBackendGetBuildVolFromFunction(virStorageVolDefPtr vol,
|
virStorageBackendGetBuildVolFromFunction(virStorageVolDefPtr vol,
|
||||||
virStorageVolDefPtr inputvol);
|
virStorageVolDefPtr inputvol);
|
||||||
|
|
||||||
int virStorageBackendVolCreateLocal(virConnectPtr conn,
|
int virStorageBackendVolCreateLocal(virStoragePoolObjPtr pool,
|
||||||
virStoragePoolObjPtr pool,
|
|
||||||
virStorageVolDefPtr vol);
|
virStorageVolDefPtr vol);
|
||||||
|
|
||||||
int virStorageBackendVolBuildLocal(virConnectPtr conn,
|
int virStorageBackendVolBuildLocal(virStoragePoolObjPtr pool,
|
||||||
virStoragePoolObjPtr pool,
|
|
||||||
virStorageVolDefPtr vol,
|
virStorageVolDefPtr vol,
|
||||||
unsigned int flags);
|
unsigned int flags);
|
||||||
|
|
||||||
int virStorageBackendVolBuildFromLocal(virConnectPtr conn,
|
int virStorageBackendVolBuildFromLocal(virStoragePoolObjPtr pool,
|
||||||
virStoragePoolObjPtr pool,
|
|
||||||
virStorageVolDefPtr vol,
|
virStorageVolDefPtr vol,
|
||||||
virStorageVolDefPtr inputvol,
|
virStorageVolDefPtr inputvol,
|
||||||
unsigned int flags);
|
unsigned int flags);
|
||||||
|
|
||||||
int virStorageBackendVolDeleteLocal(virConnectPtr conn,
|
int virStorageBackendVolDeleteLocal(virStoragePoolObjPtr pool,
|
||||||
virStoragePoolObjPtr pool,
|
|
||||||
virStorageVolDefPtr vol,
|
virStorageVolDefPtr vol,
|
||||||
unsigned int flags);
|
unsigned int flags);
|
||||||
|
|
||||||
int virStorageBackendVolRefreshLocal(virConnectPtr conn,
|
int virStorageBackendVolRefreshLocal(virStoragePoolObjPtr pool,
|
||||||
virStoragePoolObjPtr pool,
|
|
||||||
virStorageVolDefPtr vol);
|
virStorageVolDefPtr vol);
|
||||||
|
|
||||||
int virStorageBackendVolResizeLocal(virConnectPtr conn,
|
int virStorageBackendVolResizeLocal(virStoragePoolObjPtr pool,
|
||||||
virStoragePoolObjPtr pool,
|
|
||||||
virStorageVolDefPtr vol,
|
virStorageVolDefPtr vol,
|
||||||
unsigned long long capacity,
|
unsigned long long capacity,
|
||||||
unsigned int flags);
|
unsigned int flags);
|
||||||
|
|
||||||
int virStorageBackendVolUploadLocal(virConnectPtr conn,
|
int virStorageBackendVolUploadLocal(virStoragePoolObjPtr pool,
|
||||||
virStoragePoolObjPtr pool,
|
|
||||||
virStorageVolDefPtr vol,
|
virStorageVolDefPtr vol,
|
||||||
virStreamPtr stream,
|
virStreamPtr stream,
|
||||||
unsigned long long offset,
|
unsigned long long offset,
|
||||||
unsigned long long len,
|
unsigned long long len,
|
||||||
unsigned int flags);
|
unsigned int flags);
|
||||||
|
|
||||||
int virStorageBackendVolDownloadLocal(virConnectPtr conn,
|
int virStorageBackendVolDownloadLocal(virStoragePoolObjPtr pool,
|
||||||
virStoragePoolObjPtr pool,
|
|
||||||
virStorageVolDefPtr vol,
|
virStorageVolDefPtr vol,
|
||||||
virStreamPtr stream,
|
virStreamPtr stream,
|
||||||
unsigned long long offset,
|
unsigned long long offset,
|
||||||
unsigned long long len,
|
unsigned long long len,
|
||||||
unsigned int flags);
|
unsigned int flags);
|
||||||
|
|
||||||
int virStorageBackendVolWipeLocal(virConnectPtr conn,
|
int virStorageBackendVolWipeLocal(virStoragePoolObjPtr pool,
|
||||||
virStoragePoolObjPtr pool,
|
|
||||||
virStorageVolDefPtr vol,
|
virStorageVolDefPtr vol,
|
||||||
unsigned int algorithm,
|
unsigned int algorithm,
|
||||||
unsigned int flags);
|
unsigned int flags);
|
||||||
@ -93,15 +84,13 @@ int virStorageBackendVolWipeLocal(virConnectPtr conn,
|
|||||||
/* Local/Common Storage Pool Backend APIs */
|
/* Local/Common Storage Pool Backend APIs */
|
||||||
int virStorageBackendBuildLocal(virStoragePoolObjPtr pool);
|
int virStorageBackendBuildLocal(virStoragePoolObjPtr pool);
|
||||||
|
|
||||||
int virStorageBackendDeleteLocal(virConnectPtr conn,
|
int virStorageBackendDeleteLocal(virStoragePoolObjPtr pool,
|
||||||
virStoragePoolObjPtr pool,
|
|
||||||
unsigned int flags);
|
unsigned int flags);
|
||||||
|
|
||||||
int
|
int
|
||||||
virStorageBackendRefreshVolTargetUpdate(virStorageVolDefPtr vol);
|
virStorageBackendRefreshVolTargetUpdate(virStorageVolDefPtr vol);
|
||||||
|
|
||||||
int virStorageBackendRefreshLocal(virConnectPtr conn,
|
int virStorageBackendRefreshLocal(virStoragePoolObjPtr pool);
|
||||||
virStoragePoolObjPtr pool);
|
|
||||||
|
|
||||||
int virStorageUtilGlusterExtractPoolSources(const char *host,
|
int virStorageUtilGlusterExtractPoolSources(const char *host,
|
||||||
const char *xml,
|
const char *xml,
|
||||||
|
Loading…
Reference in New Issue
Block a user