mirror of
https://github.com/libvirt/libvirt.git
synced 2025-02-25 18:55:26 -06:00
Storage: Use rc hold intermediate function return values.
most libvirt code uses 'int rc' to hold intermediate function return values. consistent with the rest of libvirt. Reviewed-by: Cole Robinson <crobinso@redhat.com> Signed-off-by: Yi Li <yili@winhong.com>
This commit is contained in:
parent
42b3e5b9e4
commit
c898bda969
@ -184,8 +184,7 @@ static int
|
|||||||
virStorageBackendRBDOpenRADOSConn(virStorageBackendRBDStatePtr ptr,
|
virStorageBackendRBDOpenRADOSConn(virStorageBackendRBDStatePtr ptr,
|
||||||
virStoragePoolDefPtr def)
|
virStoragePoolDefPtr def)
|
||||||
{
|
{
|
||||||
int ret = -1;
|
int rc, ret = -1;
|
||||||
int r = 0;
|
|
||||||
virStoragePoolSourcePtr source = &def->source;
|
virStoragePoolSourcePtr source = &def->source;
|
||||||
virStorageAuthDefPtr authdef = source->auth;
|
virStorageAuthDefPtr authdef = source->auth;
|
||||||
unsigned char *secret_value = NULL;
|
unsigned char *secret_value = NULL;
|
||||||
@ -203,8 +202,8 @@ virStorageBackendRBDOpenRADOSConn(virStorageBackendRBDStatePtr ptr,
|
|||||||
if (authdef) {
|
if (authdef) {
|
||||||
VIR_DEBUG("Using cephx authorization, username: %s", authdef->username);
|
VIR_DEBUG("Using cephx authorization, username: %s", authdef->username);
|
||||||
|
|
||||||
if ((r = rados_create(&ptr->cluster, authdef->username)) < 0) {
|
if ((rc = rados_create(&ptr->cluster, authdef->username)) < 0) {
|
||||||
virReportSystemError(-r, "%s", _("failed to initialize RADOS"));
|
virReportSystemError(-rc, "%s", _("failed to initialize RADOS"));
|
||||||
goto cleanup;
|
goto cleanup;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -319,8 +318,8 @@ virStorageBackendRBDOpenRADOSConn(virStorageBackendRBDStatePtr ptr,
|
|||||||
}
|
}
|
||||||
|
|
||||||
ptr->starttime = time(0);
|
ptr->starttime = time(0);
|
||||||
if ((r = rados_connect(ptr->cluster)) < 0) {
|
if ((rc = rados_connect(ptr->cluster)) < 0) {
|
||||||
virReportSystemError(-r, _("failed to connect to the RADOS monitor on: %s"),
|
virReportSystemError(-rc, _("failed to connect to the RADOS monitor on: %s"),
|
||||||
mon_buff);
|
mon_buff);
|
||||||
goto cleanup;
|
goto cleanup;
|
||||||
}
|
}
|
||||||
@ -340,12 +339,12 @@ virStorageBackendRBDOpenIoCTX(virStorageBackendRBDStatePtr ptr,
|
|||||||
virStoragePoolObjPtr pool)
|
virStoragePoolObjPtr pool)
|
||||||
{
|
{
|
||||||
virStoragePoolDefPtr def = virStoragePoolObjGetDef(pool);
|
virStoragePoolDefPtr def = virStoragePoolObjGetDef(pool);
|
||||||
int r = rados_ioctx_create(ptr->cluster, def->source.name, &ptr->ioctx);
|
int rc = rados_ioctx_create(ptr->cluster, def->source.name, &ptr->ioctx);
|
||||||
if (r < 0) {
|
if (rc < 0) {
|
||||||
virReportSystemError(-r, _("failed to create the RBD IoCTX. Does the pool '%s' exist?"),
|
virReportSystemError(-rc, _("failed to create the RBD IoCTX. Does the pool '%s' exist?"),
|
||||||
def->source.name);
|
def->source.name);
|
||||||
}
|
}
|
||||||
return r;
|
return rc;
|
||||||
}
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
@ -408,10 +407,10 @@ volStorageBackendRBDGetFeatures(rbd_image_t image,
|
|||||||
const char *volname,
|
const char *volname,
|
||||||
uint64_t *features)
|
uint64_t *features)
|
||||||
{
|
{
|
||||||
int r;
|
int rc;
|
||||||
|
|
||||||
if ((r = rbd_get_features(image, features)) < 0) {
|
if ((rc = rbd_get_features(image, features)) < 0) {
|
||||||
virReportSystemError(-r, _("failed to get the features of RBD image "
|
virReportSystemError(-rc, _("failed to get the features of RBD image "
|
||||||
"%s"), volname);
|
"%s"), volname);
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
@ -462,13 +461,13 @@ virStorageBackendRBDSetAllocation(virStorageVolDefPtr vol,
|
|||||||
rbd_image_t *image,
|
rbd_image_t *image,
|
||||||
rbd_image_info_t *info)
|
rbd_image_info_t *info)
|
||||||
{
|
{
|
||||||
int r;
|
int rc;
|
||||||
size_t allocation = 0;
|
size_t allocation = 0;
|
||||||
|
|
||||||
if ((r = rbd_diff_iterate2(image, NULL, 0, info->size, 0, 1,
|
if ((rc = rbd_diff_iterate2(image, NULL, 0, info->size, 0, 1,
|
||||||
&virStorageBackendRBDRefreshVolInfoCb,
|
&virStorageBackendRBDRefreshVolInfoCb,
|
||||||
&allocation)) < 0) {
|
&allocation)) < 0) {
|
||||||
virReportSystemError(-r, _("failed to iterate RBD image '%s'"),
|
virReportSystemError(-rc, _("failed to iterate RBD image '%s'"),
|
||||||
vol->name);
|
vol->name);
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
@ -512,24 +511,23 @@ volStorageBackendRBDRefreshVolInfo(virStorageVolDefPtr vol,
|
|||||||
virStoragePoolObjPtr pool,
|
virStoragePoolObjPtr pool,
|
||||||
virStorageBackendRBDStatePtr ptr)
|
virStorageBackendRBDStatePtr ptr)
|
||||||
{
|
{
|
||||||
int ret = -1;
|
int rc, ret = -1;
|
||||||
virStoragePoolDefPtr def = virStoragePoolObjGetDef(pool);
|
virStoragePoolDefPtr def = virStoragePoolObjGetDef(pool);
|
||||||
int r = 0;
|
|
||||||
rbd_image_t image = NULL;
|
rbd_image_t image = NULL;
|
||||||
rbd_image_info_t info;
|
rbd_image_info_t info;
|
||||||
uint64_t features;
|
uint64_t features;
|
||||||
uint64_t flags;
|
uint64_t flags;
|
||||||
|
|
||||||
if ((r = rbd_open_read_only(ptr->ioctx, vol->name, &image, NULL)) < 0) {
|
if ((rc = rbd_open_read_only(ptr->ioctx, vol->name, &image, NULL)) < 0) {
|
||||||
ret = -r;
|
ret = -rc;
|
||||||
virReportSystemError(-r, _("failed to open the RBD image '%s'"),
|
virReportSystemError(-rc, _("failed to open the RBD image '%s'"),
|
||||||
vol->name);
|
vol->name);
|
||||||
goto cleanup;
|
goto cleanup;
|
||||||
}
|
}
|
||||||
|
|
||||||
if ((r = rbd_stat(image, &info, sizeof(info))) < 0) {
|
if ((rc = rbd_stat(image, &info, sizeof(info))) < 0) {
|
||||||
ret = -r;
|
ret = -rc;
|
||||||
virReportSystemError(-r, _("failed to stat the RBD image '%s'"),
|
virReportSystemError(-rc, _("failed to stat the RBD image '%s'"),
|
||||||
vol->name);
|
vol->name);
|
||||||
goto cleanup;
|
goto cleanup;
|
||||||
}
|
}
|
||||||
@ -672,8 +670,7 @@ virStorageBackendRBDGetVolNames(virStorageBackendRBDStatePtr ptr)
|
|||||||
static int
|
static int
|
||||||
virStorageBackendRBDRefreshPool(virStoragePoolObjPtr pool)
|
virStorageBackendRBDRefreshPool(virStoragePoolObjPtr pool)
|
||||||
{
|
{
|
||||||
int ret = -1;
|
int rc, ret = -1;
|
||||||
int r = 0;
|
|
||||||
virStoragePoolDefPtr def = virStoragePoolObjGetDef(pool);
|
virStoragePoolDefPtr def = virStoragePoolObjGetDef(pool);
|
||||||
virStorageBackendRBDStatePtr ptr = NULL;
|
virStorageBackendRBDStatePtr ptr = NULL;
|
||||||
struct rados_cluster_stat_t clusterstat;
|
struct rados_cluster_stat_t clusterstat;
|
||||||
@ -684,13 +681,13 @@ virStorageBackendRBDRefreshPool(virStoragePoolObjPtr pool)
|
|||||||
if (!(ptr = virStorageBackendRBDNewState(pool)))
|
if (!(ptr = virStorageBackendRBDNewState(pool)))
|
||||||
goto cleanup;
|
goto cleanup;
|
||||||
|
|
||||||
if ((r = rados_cluster_stat(ptr->cluster, &clusterstat)) < 0) {
|
if ((rc = rados_cluster_stat(ptr->cluster, &clusterstat)) < 0) {
|
||||||
virReportSystemError(-r, "%s", _("failed to stat the RADOS cluster"));
|
virReportSystemError(-rc, "%s", _("failed to stat the RADOS cluster"));
|
||||||
goto cleanup;
|
goto cleanup;
|
||||||
}
|
}
|
||||||
|
|
||||||
if ((r = rados_ioctx_pool_stat(ptr->ioctx, &poolstat)) < 0) {
|
if ((rc = rados_ioctx_pool_stat(ptr->ioctx, &poolstat)) < 0) {
|
||||||
virReportSystemError(-r, _("failed to stat the RADOS pool '%s'"),
|
virReportSystemError(-rc, _("failed to stat the RADOS pool '%s'"),
|
||||||
def->source.name);
|
def->source.name);
|
||||||
goto cleanup;
|
goto cleanup;
|
||||||
}
|
}
|
||||||
@ -715,7 +712,7 @@ virStorageBackendRBDRefreshPool(virStoragePoolObjPtr pool)
|
|||||||
|
|
||||||
vol->name = g_steal_pointer(&names[i]);
|
vol->name = g_steal_pointer(&names[i]);
|
||||||
|
|
||||||
r = volStorageBackendRBDRefreshVolInfo(vol, pool, ptr);
|
rc = volStorageBackendRBDRefreshVolInfo(vol, pool, ptr);
|
||||||
|
|
||||||
/* It could be that a volume has been deleted through a different route
|
/* It could be that a volume has been deleted through a different route
|
||||||
* then libvirt and that will cause a -ENOENT to be returned.
|
* then libvirt and that will cause a -ENOENT to be returned.
|
||||||
@ -726,8 +723,8 @@ virStorageBackendRBDRefreshPool(virStoragePoolObjPtr pool)
|
|||||||
*
|
*
|
||||||
* Do not error out and simply ignore the volume
|
* Do not error out and simply ignore the volume
|
||||||
*/
|
*/
|
||||||
if (r < 0) {
|
if (rc < 0) {
|
||||||
if (r == -ENOENT || r == -ETIMEDOUT)
|
if (rc == -ENOENT || rc == -ETIMEDOUT)
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
goto cleanup;
|
goto cleanup;
|
||||||
@ -754,16 +751,15 @@ virStorageBackendRBDCleanupSnapshots(rados_ioctx_t ioctx,
|
|||||||
virStoragePoolSourcePtr source,
|
virStoragePoolSourcePtr source,
|
||||||
virStorageVolDefPtr vol)
|
virStorageVolDefPtr vol)
|
||||||
{
|
{
|
||||||
int ret = -1;
|
int rc, ret = -1;
|
||||||
int r = 0;
|
|
||||||
int max_snaps = 128;
|
int max_snaps = 128;
|
||||||
int snap_count, protected;
|
int snap_count, protected;
|
||||||
size_t i;
|
size_t i;
|
||||||
rbd_image_t image = NULL;
|
rbd_image_t image = NULL;
|
||||||
g_autofree rbd_snap_info_t *snaps = NULL;
|
g_autofree rbd_snap_info_t *snaps = NULL;
|
||||||
|
|
||||||
if ((r = rbd_open(ioctx, vol->name, &image, NULL)) < 0) {
|
if ((rc = rbd_open(ioctx, vol->name, &image, NULL)) < 0) {
|
||||||
virReportSystemError(-r, _("failed to open the RBD image '%s'"),
|
virReportSystemError(-rc, _("failed to open the RBD image '%s'"),
|
||||||
vol->name);
|
vol->name);
|
||||||
goto cleanup;
|
goto cleanup;
|
||||||
}
|
}
|
||||||
@ -782,8 +778,8 @@ virStorageBackendRBDCleanupSnapshots(rados_ioctx_t ioctx,
|
|||||||
source->name, vol->name);
|
source->name, vol->name);
|
||||||
|
|
||||||
for (i = 0; i < snap_count; i++) {
|
for (i = 0; i < snap_count; i++) {
|
||||||
if ((r = rbd_snap_is_protected(image, snaps[i].name, &protected)) < 0) {
|
if ((rc = rbd_snap_is_protected(image, snaps[i].name, &protected)) < 0) {
|
||||||
virReportSystemError(-r, _("failed to verify if snapshot '%s/%s@%s' is protected"),
|
virReportSystemError(-rc, _("failed to verify if snapshot '%s/%s@%s' is protected"),
|
||||||
source->name, vol->name,
|
source->name, vol->name,
|
||||||
snaps[i].name);
|
snaps[i].name);
|
||||||
goto cleanup;
|
goto cleanup;
|
||||||
@ -794,8 +790,8 @@ virStorageBackendRBDCleanupSnapshots(rados_ioctx_t ioctx,
|
|||||||
"unprotected", source->name, vol->name,
|
"unprotected", source->name, vol->name,
|
||||||
snaps[i].name);
|
snaps[i].name);
|
||||||
|
|
||||||
if ((r = rbd_snap_unprotect(image, snaps[i].name)) < 0) {
|
if ((rc = rbd_snap_unprotect(image, snaps[i].name)) < 0) {
|
||||||
virReportSystemError(-r, _("failed to unprotect snapshot '%s/%s@%s'"),
|
virReportSystemError(-rc, _("failed to unprotect snapshot '%s/%s@%s'"),
|
||||||
source->name, vol->name,
|
source->name, vol->name,
|
||||||
snaps[i].name);
|
snaps[i].name);
|
||||||
goto cleanup;
|
goto cleanup;
|
||||||
@ -805,8 +801,8 @@ virStorageBackendRBDCleanupSnapshots(rados_ioctx_t ioctx,
|
|||||||
VIR_DEBUG("Removing snapshot %s/%s@%s", source->name,
|
VIR_DEBUG("Removing snapshot %s/%s@%s", source->name,
|
||||||
vol->name, snaps[i].name);
|
vol->name, snaps[i].name);
|
||||||
|
|
||||||
if ((r = rbd_snap_remove(image, snaps[i].name)) < 0) {
|
if ((rc = rbd_snap_remove(image, snaps[i].name)) < 0) {
|
||||||
virReportSystemError(-r, _("failed to remove snapshot '%s/%s@%s'"),
|
virReportSystemError(-rc, _("failed to remove snapshot '%s/%s@%s'"),
|
||||||
source->name, vol->name,
|
source->name, vol->name,
|
||||||
snaps[i].name);
|
snaps[i].name);
|
||||||
goto cleanup;
|
goto cleanup;
|
||||||
@ -830,8 +826,7 @@ virStorageBackendRBDDeleteVol(virStoragePoolObjPtr pool,
|
|||||||
virStorageVolDefPtr vol,
|
virStorageVolDefPtr vol,
|
||||||
unsigned int flags)
|
unsigned int flags)
|
||||||
{
|
{
|
||||||
int ret = -1;
|
int rc, ret = -1;
|
||||||
int r = 0;
|
|
||||||
virStoragePoolDefPtr def = virStoragePoolObjGetDef(pool);
|
virStoragePoolDefPtr def = virStoragePoolObjGetDef(pool);
|
||||||
virStorageBackendRBDStatePtr ptr = NULL;
|
virStorageBackendRBDStatePtr ptr = NULL;
|
||||||
|
|
||||||
@ -854,9 +849,9 @@ virStorageBackendRBDDeleteVol(virStoragePoolObjPtr pool,
|
|||||||
|
|
||||||
VIR_DEBUG("Removing volume %s/%s", def->source.name, vol->name);
|
VIR_DEBUG("Removing volume %s/%s", def->source.name, vol->name);
|
||||||
|
|
||||||
r = rbd_remove(ptr->ioctx, vol->name);
|
rc = rbd_remove(ptr->ioctx, vol->name);
|
||||||
if (r < 0 && (-r) != ENOENT) {
|
if (rc < 0 && (-rc) != ENOENT) {
|
||||||
virReportSystemError(-r, _("failed to remove volume '%s/%s'"),
|
virReportSystemError(-rc, _("failed to remove volume '%s/%s'"),
|
||||||
def->source.name, vol->name);
|
def->source.name, vol->name);
|
||||||
goto cleanup;
|
goto cleanup;
|
||||||
}
|
}
|
||||||
@ -906,8 +901,7 @@ virStorageBackendRBDBuildVol(virStoragePoolObjPtr pool,
|
|||||||
{
|
{
|
||||||
virStoragePoolDefPtr def = virStoragePoolObjGetDef(pool);
|
virStoragePoolDefPtr def = virStoragePoolObjGetDef(pool);
|
||||||
virStorageBackendRBDStatePtr ptr = NULL;
|
virStorageBackendRBDStatePtr ptr = NULL;
|
||||||
int ret = -1;
|
int rc, ret = -1;
|
||||||
int r = 0;
|
|
||||||
|
|
||||||
VIR_DEBUG("Creating RBD image %s/%s with size %llu",
|
VIR_DEBUG("Creating RBD image %s/%s with size %llu",
|
||||||
def->source.name, vol->name, vol->target.capacity);
|
def->source.name, vol->name, vol->target.capacity);
|
||||||
@ -935,9 +929,9 @@ virStorageBackendRBDBuildVol(virStoragePoolObjPtr pool,
|
|||||||
if (!(ptr = virStorageBackendRBDNewState(pool)))
|
if (!(ptr = virStorageBackendRBDNewState(pool)))
|
||||||
goto cleanup;
|
goto cleanup;
|
||||||
|
|
||||||
if ((r = virStorageBackendRBDCreateImage(ptr->ioctx, vol->name,
|
if ((rc = virStorageBackendRBDCreateImage(ptr->ioctx, vol->name,
|
||||||
vol->target.capacity)) < 0) {
|
vol->target.capacity)) < 0) {
|
||||||
virReportSystemError(-r, _("failed to create volume '%s/%s'"),
|
virReportSystemError(-rc, _("failed to create volume '%s/%s'"),
|
||||||
def->source.name, vol->name);
|
def->source.name, vol->name);
|
||||||
goto cleanup;
|
goto cleanup;
|
||||||
}
|
}
|
||||||
@ -956,11 +950,11 @@ virStorageBackendRBDImageInfo(rbd_image_t image,
|
|||||||
uint64_t *stripe_unit,
|
uint64_t *stripe_unit,
|
||||||
uint64_t *stripe_count)
|
uint64_t *stripe_count)
|
||||||
{
|
{
|
||||||
int r = 0;
|
int rc = 0;
|
||||||
uint8_t oldformat;
|
uint8_t oldformat;
|
||||||
|
|
||||||
if ((r = rbd_get_old_format(image, &oldformat)) < 0) {
|
if ((rc = rbd_get_old_format(image, &oldformat)) < 0) {
|
||||||
virReportSystemError(-r, _("failed to get the format of RBD image %s"),
|
virReportSystemError(-rc, _("failed to get the format of RBD image %s"),
|
||||||
volname);
|
volname);
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
@ -976,14 +970,14 @@ virStorageBackendRBDImageInfo(rbd_image_t image,
|
|||||||
if (volStorageBackendRBDGetFeatures(image, volname, features) < 0)
|
if (volStorageBackendRBDGetFeatures(image, volname, features) < 0)
|
||||||
return -1;
|
return -1;
|
||||||
|
|
||||||
if ((r = rbd_get_stripe_unit(image, stripe_unit)) < 0) {
|
if ((rc = rbd_get_stripe_unit(image, stripe_unit)) < 0) {
|
||||||
virReportSystemError(-r, _("failed to get the stripe unit of RBD image %s"),
|
virReportSystemError(-rc, _("failed to get the stripe unit of RBD image %s"),
|
||||||
volname);
|
volname);
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
|
|
||||||
if ((r = rbd_get_stripe_count(image, stripe_count)) < 0) {
|
if ((rc = rbd_get_stripe_count(image, stripe_count)) < 0) {
|
||||||
virReportSystemError(-r, _("failed to get the stripe count of RBD image %s"),
|
virReportSystemError(-rc, _("failed to get the stripe count of RBD image %s"),
|
||||||
volname);
|
volname);
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
@ -1015,8 +1009,7 @@ virStorageBackendRBDSnapshotFindNoDiff(rbd_image_t image,
|
|||||||
char *imgname,
|
char *imgname,
|
||||||
virBufferPtr snapname)
|
virBufferPtr snapname)
|
||||||
{
|
{
|
||||||
int r = -1;
|
int rc, ret = -1;
|
||||||
int ret = -1;
|
|
||||||
int snap_count;
|
int snap_count;
|
||||||
int max_snaps = 128;
|
int max_snaps = 128;
|
||||||
size_t i;
|
size_t i;
|
||||||
@ -1024,8 +1017,8 @@ virStorageBackendRBDSnapshotFindNoDiff(rbd_image_t image,
|
|||||||
rbd_image_info_t info;
|
rbd_image_info_t info;
|
||||||
g_autofree rbd_snap_info_t *snaps = NULL;
|
g_autofree rbd_snap_info_t *snaps = NULL;
|
||||||
|
|
||||||
if ((r = rbd_stat(image, &info, sizeof(info))) < 0) {
|
if ((rc = rbd_stat(image, &info, sizeof(info))) < 0) {
|
||||||
virReportSystemError(-r, _("failed to stat the RBD image %s"),
|
virReportSystemError(-rc, _("failed to stat the RBD image %s"),
|
||||||
imgname);
|
imgname);
|
||||||
goto cleanup;
|
goto cleanup;
|
||||||
}
|
}
|
||||||
@ -1063,15 +1056,15 @@ virStorageBackendRBDSnapshotFindNoDiff(rbd_image_t image,
|
|||||||
* is available
|
* is available
|
||||||
*/
|
*/
|
||||||
#if LIBRBD_VERSION_CODE > 265
|
#if LIBRBD_VERSION_CODE > 265
|
||||||
r = rbd_diff_iterate2(image, snaps[i].name, 0, info.size, 0, 1,
|
rc = rbd_diff_iterate2(image, snaps[i].name, 0, info.size, 0, 1,
|
||||||
virStorageBackendRBDIterateCb, (void *)&diff);
|
virStorageBackendRBDIterateCb, (void *)&diff);
|
||||||
#else
|
#else
|
||||||
r = rbd_diff_iterate(image, snaps[i].name, 0, info.size,
|
rc = rbd_diff_iterate(image, snaps[i].name, 0, info.size,
|
||||||
virStorageBackendRBDIterateCb, (void *)&diff);
|
virStorageBackendRBDIterateCb, (void *)&diff);
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
if (r < 0) {
|
if (rc < 0) {
|
||||||
virReportSystemError(-r, _("failed to iterate RBD snapshot %s@%s"),
|
virReportSystemError(-rc, _("failed to iterate RBD snapshot %s@%s"),
|
||||||
imgname, snaps[i].name);
|
imgname, snaps[i].name);
|
||||||
goto cleanup;
|
goto cleanup;
|
||||||
}
|
}
|
||||||
@ -1103,12 +1096,12 @@ virStorageBackendRBDSnapshotCreate(rbd_image_t image,
|
|||||||
char *imgname,
|
char *imgname,
|
||||||
char *snapname)
|
char *snapname)
|
||||||
{
|
{
|
||||||
int r = -1;
|
int rc = -1;
|
||||||
|
|
||||||
VIR_DEBUG("Creating RBD snapshot %s@%s", imgname, snapname);
|
VIR_DEBUG("Creating RBD snapshot %s@%s", imgname, snapname);
|
||||||
|
|
||||||
if ((r = rbd_snap_create(image, snapname)) < 0) {
|
if ((rc = rbd_snap_create(image, snapname)) < 0) {
|
||||||
virReportSystemError(-r, _("failed to create RBD snapshot %s@%s"),
|
virReportSystemError(-rc, _("failed to create RBD snapshot %s@%s"),
|
||||||
imgname, snapname);
|
imgname, snapname);
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
@ -1121,13 +1114,13 @@ virStorageBackendRBDSnapshotProtect(rbd_image_t image,
|
|||||||
char *imgname,
|
char *imgname,
|
||||||
char *snapname)
|
char *snapname)
|
||||||
{
|
{
|
||||||
int r = -1;
|
int rc = -1;
|
||||||
int protected;
|
int protected;
|
||||||
|
|
||||||
VIR_DEBUG("Querying if RBD snapshot %s@%s is protected", imgname, snapname);
|
VIR_DEBUG("Querying if RBD snapshot %s@%s is protected", imgname, snapname);
|
||||||
|
|
||||||
if ((r = rbd_snap_is_protected(image, snapname, &protected)) < 0) {
|
if ((rc = rbd_snap_is_protected(image, snapname, &protected)) < 0) {
|
||||||
virReportSystemError(-r, _("failed to verify if RBD snapshot %s@%s "
|
virReportSystemError(-rc, _("failed to verify if RBD snapshot %s@%s "
|
||||||
"is protected"), imgname, snapname);
|
"is protected"), imgname, snapname);
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
@ -1136,8 +1129,8 @@ virStorageBackendRBDSnapshotProtect(rbd_image_t image,
|
|||||||
VIR_DEBUG("RBD Snapshot %s@%s is not protected, protecting",
|
VIR_DEBUG("RBD Snapshot %s@%s is not protected, protecting",
|
||||||
imgname, snapname);
|
imgname, snapname);
|
||||||
|
|
||||||
if ((r = rbd_snap_protect(image, snapname)) < 0) {
|
if ((rc = rbd_snap_protect(image, snapname)) < 0) {
|
||||||
virReportSystemError(-r, _("failed to protect RBD snapshot %s@%s"),
|
virReportSystemError(-rc, _("failed to protect RBD snapshot %s@%s"),
|
||||||
imgname, snapname);
|
imgname, snapname);
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
@ -1153,8 +1146,7 @@ virStorageBackendRBDCloneImage(rados_ioctx_t io,
|
|||||||
char *origvol,
|
char *origvol,
|
||||||
char *newvol)
|
char *newvol)
|
||||||
{
|
{
|
||||||
int r = -1;
|
int rc, ret = -1;
|
||||||
int ret = -1;
|
|
||||||
int order = 0;
|
int order = 0;
|
||||||
uint64_t features;
|
uint64_t features;
|
||||||
uint64_t stripe_count;
|
uint64_t stripe_count;
|
||||||
@ -1163,8 +1155,8 @@ virStorageBackendRBDCloneImage(rados_ioctx_t io,
|
|||||||
rbd_image_t image = NULL;
|
rbd_image_t image = NULL;
|
||||||
g_autofree char *snapname_buff = NULL;
|
g_autofree char *snapname_buff = NULL;
|
||||||
|
|
||||||
if ((r = rbd_open(io, origvol, &image, NULL)) < 0) {
|
if ((rc = rbd_open(io, origvol, &image, NULL)) < 0) {
|
||||||
virReportSystemError(-r, _("failed to open the RBD image %s"),
|
virReportSystemError(-rc, _("failed to open the RBD image %s"),
|
||||||
origvol);
|
origvol);
|
||||||
goto cleanup;
|
goto cleanup;
|
||||||
}
|
}
|
||||||
@ -1211,14 +1203,14 @@ virStorageBackendRBDCloneImage(rados_ioctx_t io,
|
|||||||
* RBD snapshots have to be 'protected' before they can be used
|
* RBD snapshots have to be 'protected' before they can be used
|
||||||
* as a parent snapshot for a child image
|
* as a parent snapshot for a child image
|
||||||
*/
|
*/
|
||||||
if ((r = virStorageBackendRBDSnapshotProtect(image, origvol, snapname_buff)) < 0)
|
if ((rc = virStorageBackendRBDSnapshotProtect(image, origvol, snapname_buff)) < 0)
|
||||||
goto cleanup;
|
goto cleanup;
|
||||||
|
|
||||||
VIR_DEBUG("Performing RBD clone from %s to %s", origvol, newvol);
|
VIR_DEBUG("Performing RBD clone from %s to %s", origvol, newvol);
|
||||||
|
|
||||||
if ((r = rbd_clone2(io, origvol, snapname_buff, io, newvol, features,
|
if ((rc = rbd_clone2(io, origvol, snapname_buff, io, newvol, features,
|
||||||
&order, stripe_unit, stripe_count)) < 0) {
|
&order, stripe_unit, stripe_count)) < 0) {
|
||||||
virReportSystemError(-r, _("failed to clone RBD volume %s to %s"),
|
virReportSystemError(-rc, _("failed to clone RBD volume %s to %s"),
|
||||||
origvol, newvol);
|
origvol, newvol);
|
||||||
goto cleanup;
|
goto cleanup;
|
||||||
}
|
}
|
||||||
@ -1293,22 +1285,21 @@ virStorageBackendRBDResizeVol(virStoragePoolObjPtr pool,
|
|||||||
{
|
{
|
||||||
virStorageBackendRBDStatePtr ptr = NULL;
|
virStorageBackendRBDStatePtr ptr = NULL;
|
||||||
rbd_image_t image = NULL;
|
rbd_image_t image = NULL;
|
||||||
int ret = -1;
|
int rc, ret = -1;
|
||||||
int r = 0;
|
|
||||||
|
|
||||||
virCheckFlags(0, -1);
|
virCheckFlags(0, -1);
|
||||||
|
|
||||||
if (!(ptr = virStorageBackendRBDNewState(pool)))
|
if (!(ptr = virStorageBackendRBDNewState(pool)))
|
||||||
goto cleanup;
|
goto cleanup;
|
||||||
|
|
||||||
if ((r = rbd_open(ptr->ioctx, vol->name, &image, NULL)) < 0) {
|
if ((rc = rbd_open(ptr->ioctx, vol->name, &image, NULL)) < 0) {
|
||||||
virReportSystemError(-r, _("failed to open the RBD image '%s'"),
|
virReportSystemError(-rc, _("failed to open the RBD image '%s'"),
|
||||||
vol->name);
|
vol->name);
|
||||||
goto cleanup;
|
goto cleanup;
|
||||||
}
|
}
|
||||||
|
|
||||||
if ((r = rbd_resize(image, capacity)) < 0) {
|
if ((rc = rbd_resize(image, capacity)) < 0) {
|
||||||
virReportSystemError(-r, _("failed to resize the RBD image '%s'"),
|
virReportSystemError(-rc, _("failed to resize the RBD image '%s'"),
|
||||||
vol->name);
|
vol->name);
|
||||||
goto cleanup;
|
goto cleanup;
|
||||||
}
|
}
|
||||||
@ -1328,7 +1319,7 @@ virStorageBackendRBDVolWipeZero(rbd_image_t image,
|
|||||||
rbd_image_info_t *info,
|
rbd_image_info_t *info,
|
||||||
uint64_t stripe_count)
|
uint64_t stripe_count)
|
||||||
{
|
{
|
||||||
int r = -1;
|
int rc;
|
||||||
unsigned long long offset = 0;
|
unsigned long long offset = 0;
|
||||||
unsigned long long length;
|
unsigned long long length;
|
||||||
g_autofree char *writebuf = NULL;
|
g_autofree char *writebuf = NULL;
|
||||||
@ -1339,8 +1330,8 @@ virStorageBackendRBDVolWipeZero(rbd_image_t image,
|
|||||||
while (offset < info->size) {
|
while (offset < info->size) {
|
||||||
length = MIN((info->size - offset), (info->obj_size * stripe_count));
|
length = MIN((info->size - offset), (info->obj_size * stripe_count));
|
||||||
|
|
||||||
if ((r = rbd_write(image, offset, length, writebuf)) < 0) {
|
if ((rc = rbd_write(image, offset, length, writebuf)) < 0) {
|
||||||
virReportSystemError(-r, _("writing %llu bytes failed on "
|
virReportSystemError(-rc, _("writing %llu bytes failed on "
|
||||||
"RBD image %s at offset %llu"),
|
"RBD image %s at offset %llu"),
|
||||||
length, imgname, offset);
|
length, imgname, offset);
|
||||||
return -1;
|
return -1;
|
||||||
@ -1361,7 +1352,7 @@ virStorageBackendRBDVolWipeDiscard(rbd_image_t image,
|
|||||||
rbd_image_info_t *info,
|
rbd_image_info_t *info,
|
||||||
uint64_t stripe_count)
|
uint64_t stripe_count)
|
||||||
{
|
{
|
||||||
int r = -1;
|
int rc = -1;
|
||||||
unsigned long long offset = 0;
|
unsigned long long offset = 0;
|
||||||
unsigned long long length;
|
unsigned long long length;
|
||||||
|
|
||||||
@ -1370,8 +1361,8 @@ virStorageBackendRBDVolWipeDiscard(rbd_image_t image,
|
|||||||
while (offset < info->size) {
|
while (offset < info->size) {
|
||||||
length = MIN((info->size - offset), (info->obj_size * stripe_count));
|
length = MIN((info->size - offset), (info->obj_size * stripe_count));
|
||||||
|
|
||||||
if ((r = rbd_discard(image, offset, length)) < 0) {
|
if ((rc = rbd_discard(image, offset, length)) < 0) {
|
||||||
virReportSystemError(-r, _("discarding %llu bytes failed on "
|
virReportSystemError(-rc, _("discarding %llu bytes failed on "
|
||||||
"RBD image %s at offset %llu"),
|
"RBD image %s at offset %llu"),
|
||||||
length, imgname, offset);
|
length, imgname, offset);
|
||||||
return -1;
|
return -1;
|
||||||
@ -1397,8 +1388,7 @@ virStorageBackendRBDVolWipe(virStoragePoolObjPtr pool,
|
|||||||
rbd_image_t image = NULL;
|
rbd_image_t image = NULL;
|
||||||
rbd_image_info_t info;
|
rbd_image_info_t info;
|
||||||
uint64_t stripe_count;
|
uint64_t stripe_count;
|
||||||
int r = -1;
|
int rc, ret = -1;
|
||||||
int ret = -1;
|
|
||||||
|
|
||||||
virCheckFlags(0, -1);
|
virCheckFlags(0, -1);
|
||||||
|
|
||||||
@ -1411,20 +1401,20 @@ virStorageBackendRBDVolWipe(virStoragePoolObjPtr pool,
|
|||||||
if (!ptr)
|
if (!ptr)
|
||||||
goto cleanup;
|
goto cleanup;
|
||||||
|
|
||||||
if ((r = rbd_open(ptr->ioctx, vol->name, &image, NULL)) < 0) {
|
if ((rc = rbd_open(ptr->ioctx, vol->name, &image, NULL)) < 0) {
|
||||||
virReportSystemError(-r, _("failed to open the RBD image %s"),
|
virReportSystemError(-rc, _("failed to open the RBD image %s"),
|
||||||
vol->name);
|
vol->name);
|
||||||
goto cleanup;
|
goto cleanup;
|
||||||
}
|
}
|
||||||
|
|
||||||
if ((r = rbd_stat(image, &info, sizeof(info))) < 0) {
|
if ((rc = rbd_stat(image, &info, sizeof(info))) < 0) {
|
||||||
virReportSystemError(-r, _("failed to stat the RBD image %s"),
|
virReportSystemError(-rc, _("failed to stat the RBD image %s"),
|
||||||
vol->name);
|
vol->name);
|
||||||
goto cleanup;
|
goto cleanup;
|
||||||
}
|
}
|
||||||
|
|
||||||
if ((r = rbd_get_stripe_count(image, &stripe_count)) < 0) {
|
if ((rc = rbd_get_stripe_count(image, &stripe_count)) < 0) {
|
||||||
virReportSystemError(-r, _("failed to get stripe count of RBD image %s"),
|
virReportSystemError(-rc, _("failed to get stripe count of RBD image %s"),
|
||||||
vol->name);
|
vol->name);
|
||||||
goto cleanup;
|
goto cleanup;
|
||||||
}
|
}
|
||||||
@ -1434,11 +1424,11 @@ virStorageBackendRBDVolWipe(virStoragePoolObjPtr pool,
|
|||||||
|
|
||||||
switch ((virStorageVolWipeAlgorithm) algorithm) {
|
switch ((virStorageVolWipeAlgorithm) algorithm) {
|
||||||
case VIR_STORAGE_VOL_WIPE_ALG_ZERO:
|
case VIR_STORAGE_VOL_WIPE_ALG_ZERO:
|
||||||
r = virStorageBackendRBDVolWipeZero(image, vol->name,
|
rc = virStorageBackendRBDVolWipeZero(image, vol->name,
|
||||||
&info, stripe_count);
|
&info, stripe_count);
|
||||||
break;
|
break;
|
||||||
case VIR_STORAGE_VOL_WIPE_ALG_TRIM:
|
case VIR_STORAGE_VOL_WIPE_ALG_TRIM:
|
||||||
r = virStorageBackendRBDVolWipeDiscard(image, vol->name,
|
rc = virStorageBackendRBDVolWipeDiscard(image, vol->name,
|
||||||
&info, stripe_count);
|
&info, stripe_count);
|
||||||
break;
|
break;
|
||||||
case VIR_STORAGE_VOL_WIPE_ALG_NNSA:
|
case VIR_STORAGE_VOL_WIPE_ALG_NNSA:
|
||||||
@ -1455,8 +1445,8 @@ virStorageBackendRBDVolWipe(virStoragePoolObjPtr pool,
|
|||||||
goto cleanup;
|
goto cleanup;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (r < 0) {
|
if (rc < 0) {
|
||||||
virReportSystemError(-r, _("failed to wipe RBD image %s"),
|
virReportSystemError(-rc, _("failed to wipe RBD image %s"),
|
||||||
vol->name);
|
vol->name);
|
||||||
goto cleanup;
|
goto cleanup;
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user