mirror of
https://github.com/libvirt/libvirt.git
synced 2025-02-25 18:55:26 -06:00
Storage: Use errno parameter in virReportSystemError
Use errno parameter in virReportSystemError. Remove hold function return values if don't need. Reviewed-by: Cole Robinson <crobinso@redhat.com> Signed-off-by: Yi Li <yili@winhong.com>
This commit is contained in:
parent
a9eaaccd22
commit
546e1c112d
@ -184,7 +184,7 @@ static int
|
|||||||
virStorageBackendRBDOpenRADOSConn(virStorageBackendRBDStatePtr ptr,
|
virStorageBackendRBDOpenRADOSConn(virStorageBackendRBDStatePtr ptr,
|
||||||
virStoragePoolDefPtr def)
|
virStoragePoolDefPtr def)
|
||||||
{
|
{
|
||||||
int rc, ret = -1;
|
int ret = -1;
|
||||||
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;
|
||||||
@ -202,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 ((rc = rados_create(&ptr->cluster, authdef->username)) < 0) {
|
if (rados_create(&ptr->cluster, authdef->username) < 0) {
|
||||||
virReportSystemError(-rc, "%s", _("failed to initialize RADOS"));
|
virReportSystemError(errno, "%s", _("failed to initialize RADOS"));
|
||||||
goto cleanup;
|
goto cleanup;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -318,8 +318,8 @@ virStorageBackendRBDOpenRADOSConn(virStorageBackendRBDStatePtr ptr,
|
|||||||
}
|
}
|
||||||
|
|
||||||
ptr->starttime = time(0);
|
ptr->starttime = time(0);
|
||||||
if ((rc = rados_connect(ptr->cluster)) < 0) {
|
if (rados_connect(ptr->cluster) < 0) {
|
||||||
virReportSystemError(-rc, _("failed to connect to the RADOS monitor on: %s"),
|
virReportSystemError(errno, _("failed to connect to the RADOS monitor on: %s"),
|
||||||
mon_buff);
|
mon_buff);
|
||||||
goto cleanup;
|
goto cleanup;
|
||||||
}
|
}
|
||||||
@ -341,7 +341,7 @@ virStorageBackendRBDOpenIoCTX(virStorageBackendRBDStatePtr ptr,
|
|||||||
virStoragePoolDefPtr def = virStoragePoolObjGetDef(pool);
|
virStoragePoolDefPtr def = virStoragePoolObjGetDef(pool);
|
||||||
int rc = rados_ioctx_create(ptr->cluster, def->source.name, &ptr->ioctx);
|
int rc = rados_ioctx_create(ptr->cluster, def->source.name, &ptr->ioctx);
|
||||||
if (rc < 0) {
|
if (rc < 0) {
|
||||||
virReportSystemError(-rc, _("failed to create the RBD IoCTX. Does the pool '%s' exist?"),
|
virReportSystemError(errno, _("failed to create the RBD IoCTX. Does the pool '%s' exist?"),
|
||||||
def->source.name);
|
def->source.name);
|
||||||
}
|
}
|
||||||
return rc;
|
return rc;
|
||||||
@ -410,7 +410,7 @@ volStorageBackendRBDGetFeatures(rbd_image_t image,
|
|||||||
int rc;
|
int rc;
|
||||||
|
|
||||||
if ((rc = rbd_get_features(image, features)) < 0) {
|
if ((rc = rbd_get_features(image, features)) < 0) {
|
||||||
virReportSystemError(-rc, _("failed to get the features of RBD image "
|
virReportSystemError(errno, _("failed to get the features of RBD image "
|
||||||
"%s"), volname);
|
"%s"), volname);
|
||||||
return rc;
|
return rc;
|
||||||
}
|
}
|
||||||
@ -427,7 +427,7 @@ volStorageBackendRBDGetFlags(rbd_image_t image,
|
|||||||
int rc;
|
int rc;
|
||||||
|
|
||||||
if ((rc = rbd_get_flags(image, flags)) < 0) {
|
if ((rc = rbd_get_flags(image, flags)) < 0) {
|
||||||
virReportSystemError(-rc,
|
virReportSystemError(errno,
|
||||||
_("failed to get the flags of RBD image %s"),
|
_("failed to get the flags of RBD image %s"),
|
||||||
volname);
|
volname);
|
||||||
return rc;
|
return rc;
|
||||||
@ -467,7 +467,7 @@ virStorageBackendRBDSetAllocation(virStorageVolDefPtr vol,
|
|||||||
if ((rc = 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(-rc, _("failed to iterate RBD image '%s'"),
|
virReportSystemError(errno, _("failed to iterate RBD image '%s'"),
|
||||||
vol->name);
|
vol->name);
|
||||||
return rc;
|
return rc;
|
||||||
}
|
}
|
||||||
@ -520,14 +520,14 @@ volStorageBackendRBDRefreshVolInfo(virStorageVolDefPtr vol,
|
|||||||
|
|
||||||
if ((rc = 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 = rc;
|
ret = rc;
|
||||||
virReportSystemError(-rc, _("failed to open the RBD image '%s'"),
|
virReportSystemError(errno, _("failed to open the RBD image '%s'"),
|
||||||
vol->name);
|
vol->name);
|
||||||
goto cleanup;
|
goto cleanup;
|
||||||
}
|
}
|
||||||
|
|
||||||
if ((rc = rbd_stat(image, &info, sizeof(info))) < 0) {
|
if ((rc = rbd_stat(image, &info, sizeof(info))) < 0) {
|
||||||
ret = rc;
|
ret = rc;
|
||||||
virReportSystemError(-rc, _("failed to stat the RBD image '%s'"),
|
virReportSystemError(errno, _("failed to stat the RBD image '%s'"),
|
||||||
vol->name);
|
vol->name);
|
||||||
goto cleanup;
|
goto cleanup;
|
||||||
}
|
}
|
||||||
@ -600,7 +600,7 @@ virStorageBackendRBDGetVolNames(virStorageBackendRBDStatePtr ptr)
|
|||||||
if (rc >= 0)
|
if (rc >= 0)
|
||||||
break;
|
break;
|
||||||
if (rc != -ERANGE) {
|
if (rc != -ERANGE) {
|
||||||
virReportSystemError(-rc, "%s", _("Unable to list RBD images"));
|
virReportSystemError(errno, "%s", _("Unable to list RBD images"));
|
||||||
goto error;
|
goto error;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -641,7 +641,7 @@ virStorageBackendRBDGetVolNames(virStorageBackendRBDStatePtr ptr)
|
|||||||
if (rc >= 0)
|
if (rc >= 0)
|
||||||
break;
|
break;
|
||||||
if (rc != -ERANGE) {
|
if (rc != -ERANGE) {
|
||||||
virReportSystemError(-rc, "%s", _("Unable to list RBD images"));
|
virReportSystemError(errno, "%s", _("Unable to list RBD images"));
|
||||||
goto error;
|
goto error;
|
||||||
}
|
}
|
||||||
VIR_FREE(namebuf);
|
VIR_FREE(namebuf);
|
||||||
@ -687,13 +687,13 @@ virStorageBackendRBDRefreshPool(virStoragePoolObjPtr pool)
|
|||||||
if (!(ptr = virStorageBackendRBDNewState(pool)))
|
if (!(ptr = virStorageBackendRBDNewState(pool)))
|
||||||
goto cleanup;
|
goto cleanup;
|
||||||
|
|
||||||
if ((rc = rados_cluster_stat(ptr->cluster, &clusterstat)) < 0) {
|
if (rados_cluster_stat(ptr->cluster, &clusterstat) < 0) {
|
||||||
virReportSystemError(-rc, "%s", _("failed to stat the RADOS cluster"));
|
virReportSystemError(errno, "%s", _("failed to stat the RADOS cluster"));
|
||||||
goto cleanup;
|
goto cleanup;
|
||||||
}
|
}
|
||||||
|
|
||||||
if ((rc = rados_ioctx_pool_stat(ptr->ioctx, &poolstat)) < 0) {
|
if (rados_ioctx_pool_stat(ptr->ioctx, &poolstat) < 0) {
|
||||||
virReportSystemError(-rc, _("failed to stat the RADOS pool '%s'"),
|
virReportSystemError(errno, _("failed to stat the RADOS pool '%s'"),
|
||||||
def->source.name);
|
def->source.name);
|
||||||
goto cleanup;
|
goto cleanup;
|
||||||
}
|
}
|
||||||
@ -757,15 +757,15 @@ virStorageBackendRBDCleanupSnapshots(rados_ioctx_t ioctx,
|
|||||||
virStoragePoolSourcePtr source,
|
virStoragePoolSourcePtr source,
|
||||||
virStorageVolDefPtr vol)
|
virStorageVolDefPtr vol)
|
||||||
{
|
{
|
||||||
int rc, ret = -1;
|
int ret = -1;
|
||||||
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 ((rc = rbd_open(ioctx, vol->name, &image, NULL)) < 0) {
|
if (rbd_open(ioctx, vol->name, &image, NULL) < 0) {
|
||||||
virReportSystemError(-rc, _("failed to open the RBD image '%s'"),
|
virReportSystemError(errno, _("failed to open the RBD image '%s'"),
|
||||||
vol->name);
|
vol->name);
|
||||||
goto cleanup;
|
goto cleanup;
|
||||||
}
|
}
|
||||||
@ -784,8 +784,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 ((rc = rbd_snap_is_protected(image, snaps[i].name, &protected)) < 0) {
|
if (rbd_snap_is_protected(image, snaps[i].name, &protected) < 0) {
|
||||||
virReportSystemError(-rc, _("failed to verify if snapshot '%s/%s@%s' is protected"),
|
virReportSystemError(errno, _("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;
|
||||||
@ -796,8 +796,8 @@ virStorageBackendRBDCleanupSnapshots(rados_ioctx_t ioctx,
|
|||||||
"unprotected", source->name, vol->name,
|
"unprotected", source->name, vol->name,
|
||||||
snaps[i].name);
|
snaps[i].name);
|
||||||
|
|
||||||
if ((rc = rbd_snap_unprotect(image, snaps[i].name)) < 0) {
|
if (rbd_snap_unprotect(image, snaps[i].name) < 0) {
|
||||||
virReportSystemError(-rc, _("failed to unprotect snapshot '%s/%s@%s'"),
|
virReportSystemError(errno, _("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;
|
||||||
@ -807,8 +807,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 ((rc = rbd_snap_remove(image, snaps[i].name)) < 0) {
|
if (rbd_snap_remove(image, snaps[i].name) < 0) {
|
||||||
virReportSystemError(-rc, _("failed to remove snapshot '%s/%s@%s'"),
|
virReportSystemError(errno, _("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;
|
||||||
@ -857,7 +857,7 @@ virStorageBackendRBDDeleteVol(virStoragePoolObjPtr pool,
|
|||||||
|
|
||||||
rc = rbd_remove(ptr->ioctx, vol->name);
|
rc = rbd_remove(ptr->ioctx, vol->name);
|
||||||
if (rc < 0 && (-rc) != ENOENT) {
|
if (rc < 0 && (-rc) != ENOENT) {
|
||||||
virReportSystemError(-rc, _("failed to remove volume '%s/%s'"),
|
virReportSystemError(errno, _("failed to remove volume '%s/%s'"),
|
||||||
def->source.name, vol->name);
|
def->source.name, vol->name);
|
||||||
goto cleanup;
|
goto cleanup;
|
||||||
}
|
}
|
||||||
@ -907,7 +907,7 @@ virStorageBackendRBDBuildVol(virStoragePoolObjPtr pool,
|
|||||||
{
|
{
|
||||||
virStoragePoolDefPtr def = virStoragePoolObjGetDef(pool);
|
virStoragePoolDefPtr def = virStoragePoolObjGetDef(pool);
|
||||||
virStorageBackendRBDStatePtr ptr = NULL;
|
virStorageBackendRBDStatePtr ptr = NULL;
|
||||||
int rc, ret = -1;
|
int ret = -1;
|
||||||
|
|
||||||
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 +935,9 @@ virStorageBackendRBDBuildVol(virStoragePoolObjPtr pool,
|
|||||||
if (!(ptr = virStorageBackendRBDNewState(pool)))
|
if (!(ptr = virStorageBackendRBDNewState(pool)))
|
||||||
goto cleanup;
|
goto cleanup;
|
||||||
|
|
||||||
if ((rc = virStorageBackendRBDCreateImage(ptr->ioctx, vol->name,
|
if (virStorageBackendRBDCreateImage(ptr->ioctx, vol->name,
|
||||||
vol->target.capacity)) < 0) {
|
vol->target.capacity) < 0) {
|
||||||
virReportSystemError(-rc, _("failed to create volume '%s/%s'"),
|
virReportSystemError(errno, _("failed to create volume '%s/%s'"),
|
||||||
def->source.name, vol->name);
|
def->source.name, vol->name);
|
||||||
goto cleanup;
|
goto cleanup;
|
||||||
}
|
}
|
||||||
@ -956,11 +956,10 @@ virStorageBackendRBDImageInfo(rbd_image_t image,
|
|||||||
uint64_t *stripe_unit,
|
uint64_t *stripe_unit,
|
||||||
uint64_t *stripe_count)
|
uint64_t *stripe_count)
|
||||||
{
|
{
|
||||||
int rc = 0;
|
|
||||||
uint8_t oldformat;
|
uint8_t oldformat;
|
||||||
|
|
||||||
if ((rc = rbd_get_old_format(image, &oldformat)) < 0) {
|
if (rbd_get_old_format(image, &oldformat) < 0) {
|
||||||
virReportSystemError(-rc, _("failed to get the format of RBD image %s"),
|
virReportSystemError(errno, _("failed to get the format of RBD image %s"),
|
||||||
volname);
|
volname);
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
@ -976,14 +975,14 @@ virStorageBackendRBDImageInfo(rbd_image_t image,
|
|||||||
if (volStorageBackendRBDGetFeatures(image, volname, features) < 0)
|
if (volStorageBackendRBDGetFeatures(image, volname, features) < 0)
|
||||||
return -1;
|
return -1;
|
||||||
|
|
||||||
if ((rc = rbd_get_stripe_unit(image, stripe_unit)) < 0) {
|
if (rbd_get_stripe_unit(image, stripe_unit) < 0) {
|
||||||
virReportSystemError(-rc, _("failed to get the stripe unit of RBD image %s"),
|
virReportSystemError(errno, _("failed to get the stripe unit of RBD image %s"),
|
||||||
volname);
|
volname);
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
|
|
||||||
if ((rc = rbd_get_stripe_count(image, stripe_count)) < 0) {
|
if (rbd_get_stripe_count(image, stripe_count) < 0) {
|
||||||
virReportSystemError(-rc, _("failed to get the stripe count of RBD image %s"),
|
virReportSystemError(errno, _("failed to get the stripe count of RBD image %s"),
|
||||||
volname);
|
volname);
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
@ -1015,7 +1014,7 @@ virStorageBackendRBDSnapshotFindNoDiff(rbd_image_t image,
|
|||||||
char *imgname,
|
char *imgname,
|
||||||
virBufferPtr snapname)
|
virBufferPtr snapname)
|
||||||
{
|
{
|
||||||
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;
|
||||||
@ -1023,8 +1022,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 ((rc = rbd_stat(image, &info, sizeof(info))) < 0) {
|
if (rbd_stat(image, &info, sizeof(info)) < 0) {
|
||||||
virReportSystemError(-rc, _("failed to stat the RBD image %s"),
|
virReportSystemError(errno, _("failed to stat the RBD image %s"),
|
||||||
imgname);
|
imgname);
|
||||||
goto cleanup;
|
goto cleanup;
|
||||||
}
|
}
|
||||||
@ -1062,15 +1061,13 @@ virStorageBackendRBDSnapshotFindNoDiff(rbd_image_t image,
|
|||||||
* is available
|
* is available
|
||||||
*/
|
*/
|
||||||
#if LIBRBD_VERSION_CODE > 265
|
#if LIBRBD_VERSION_CODE > 265
|
||||||
rc = rbd_diff_iterate2(image, snaps[i].name, 0, info.size, 0, 1,
|
if (rbd_diff_iterate2(image, snaps[i].name, 0, info.size, 0, 1,
|
||||||
virStorageBackendRBDIterateCb, (void *)&diff);
|
virStorageBackendRBDIterateCb, (void *)&diff) < 0) {
|
||||||
#else
|
#else
|
||||||
rc = rbd_diff_iterate(image, snaps[i].name, 0, info.size,
|
if (rbd_diff_iterate(image, snaps[i].name, 0, info.size,
|
||||||
virStorageBackendRBDIterateCb, (void *)&diff);
|
virStorageBackendRBDIterateCb, (void *)&diff) < 0) {
|
||||||
#endif
|
#endif
|
||||||
|
virReportSystemError(errno, _("failed to iterate RBD snapshot %s@%s"),
|
||||||
if (rc < 0) {
|
|
||||||
virReportSystemError(-rc, _("failed to iterate RBD snapshot %s@%s"),
|
|
||||||
imgname, snaps[i].name);
|
imgname, snaps[i].name);
|
||||||
goto cleanup;
|
goto cleanup;
|
||||||
}
|
}
|
||||||
@ -1102,12 +1099,10 @@ virStorageBackendRBDSnapshotCreate(rbd_image_t image,
|
|||||||
char *imgname,
|
char *imgname,
|
||||||
char *snapname)
|
char *snapname)
|
||||||
{
|
{
|
||||||
int rc = -1;
|
|
||||||
|
|
||||||
VIR_DEBUG("Creating RBD snapshot %s@%s", imgname, snapname);
|
VIR_DEBUG("Creating RBD snapshot %s@%s", imgname, snapname);
|
||||||
|
|
||||||
if ((rc = rbd_snap_create(image, snapname)) < 0) {
|
if (rbd_snap_create(image, snapname) < 0) {
|
||||||
virReportSystemError(-rc, _("failed to create RBD snapshot %s@%s"),
|
virReportSystemError(errno, _("failed to create RBD snapshot %s@%s"),
|
||||||
imgname, snapname);
|
imgname, snapname);
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
@ -1120,13 +1115,12 @@ virStorageBackendRBDSnapshotProtect(rbd_image_t image,
|
|||||||
char *imgname,
|
char *imgname,
|
||||||
char *snapname)
|
char *snapname)
|
||||||
{
|
{
|
||||||
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 ((rc = rbd_snap_is_protected(image, snapname, &protected)) < 0) {
|
if (rbd_snap_is_protected(image, snapname, &protected) < 0) {
|
||||||
virReportSystemError(-rc, _("failed to verify if RBD snapshot %s@%s "
|
virReportSystemError(errno, _("failed to verify if RBD snapshot %s@%s "
|
||||||
"is protected"), imgname, snapname);
|
"is protected"), imgname, snapname);
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
@ -1135,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 ((rc = rbd_snap_protect(image, snapname)) < 0) {
|
if (rbd_snap_protect(image, snapname) < 0) {
|
||||||
virReportSystemError(-rc, _("failed to protect RBD snapshot %s@%s"),
|
virReportSystemError(errno, _("failed to protect RBD snapshot %s@%s"),
|
||||||
imgname, snapname);
|
imgname, snapname);
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
@ -1152,7 +1146,7 @@ virStorageBackendRBDCloneImage(rados_ioctx_t io,
|
|||||||
char *origvol,
|
char *origvol,
|
||||||
char *newvol)
|
char *newvol)
|
||||||
{
|
{
|
||||||
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;
|
||||||
@ -1161,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 ((rc = rbd_open(io, origvol, &image, NULL)) < 0) {
|
if (rbd_open(io, origvol, &image, NULL) < 0) {
|
||||||
virReportSystemError(-rc, _("failed to open the RBD image %s"),
|
virReportSystemError(errno, _("failed to open the RBD image %s"),
|
||||||
origvol);
|
origvol);
|
||||||
goto cleanup;
|
goto cleanup;
|
||||||
}
|
}
|
||||||
@ -1209,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 ((rc = virStorageBackendRBDSnapshotProtect(image, origvol, snapname_buff)) < 0)
|
if (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 ((rc = rbd_clone2(io, origvol, snapname_buff, io, newvol, features,
|
if (rbd_clone2(io, origvol, snapname_buff, io, newvol, features,
|
||||||
&order, stripe_unit, stripe_count)) < 0) {
|
&order, stripe_unit, stripe_count) < 0) {
|
||||||
virReportSystemError(-rc, _("failed to clone RBD volume %s to %s"),
|
virReportSystemError(errno, _("failed to clone RBD volume %s to %s"),
|
||||||
origvol, newvol);
|
origvol, newvol);
|
||||||
goto cleanup;
|
goto cleanup;
|
||||||
}
|
}
|
||||||
@ -1291,21 +1285,21 @@ virStorageBackendRBDResizeVol(virStoragePoolObjPtr pool,
|
|||||||
{
|
{
|
||||||
virStorageBackendRBDStatePtr ptr = NULL;
|
virStorageBackendRBDStatePtr ptr = NULL;
|
||||||
rbd_image_t image = NULL;
|
rbd_image_t image = NULL;
|
||||||
int rc, ret = -1;
|
int ret = -1;
|
||||||
|
|
||||||
virCheckFlags(0, -1);
|
virCheckFlags(0, -1);
|
||||||
|
|
||||||
if (!(ptr = virStorageBackendRBDNewState(pool)))
|
if (!(ptr = virStorageBackendRBDNewState(pool)))
|
||||||
goto cleanup;
|
goto cleanup;
|
||||||
|
|
||||||
if ((rc = rbd_open(ptr->ioctx, vol->name, &image, NULL)) < 0) {
|
if (rbd_open(ptr->ioctx, vol->name, &image, NULL) < 0) {
|
||||||
virReportSystemError(-rc, _("failed to open the RBD image '%s'"),
|
virReportSystemError(errno, _("failed to open the RBD image '%s'"),
|
||||||
vol->name);
|
vol->name);
|
||||||
goto cleanup;
|
goto cleanup;
|
||||||
}
|
}
|
||||||
|
|
||||||
if ((rc = rbd_resize(image, capacity)) < 0) {
|
if (rbd_resize(image, capacity) < 0) {
|
||||||
virReportSystemError(-rc, _("failed to resize the RBD image '%s'"),
|
virReportSystemError(errno, _("failed to resize the RBD image '%s'"),
|
||||||
vol->name);
|
vol->name);
|
||||||
goto cleanup;
|
goto cleanup;
|
||||||
}
|
}
|
||||||
@ -1325,7 +1319,6 @@ virStorageBackendRBDVolWipeZero(rbd_image_t image,
|
|||||||
rbd_image_info_t *info,
|
rbd_image_info_t *info,
|
||||||
uint64_t stripe_count)
|
uint64_t stripe_count)
|
||||||
{
|
{
|
||||||
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;
|
||||||
@ -1336,8 +1329,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 ((rc = rbd_write(image, offset, length, writebuf)) < 0) {
|
if (rbd_write(image, offset, length, writebuf) < 0) {
|
||||||
virReportSystemError(-rc, _("writing %llu bytes failed on "
|
virReportSystemError(errno, _("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;
|
||||||
@ -1358,7 +1351,6 @@ virStorageBackendRBDVolWipeDiscard(rbd_image_t image,
|
|||||||
rbd_image_info_t *info,
|
rbd_image_info_t *info,
|
||||||
uint64_t stripe_count)
|
uint64_t stripe_count)
|
||||||
{
|
{
|
||||||
int rc = -1;
|
|
||||||
unsigned long long offset = 0;
|
unsigned long long offset = 0;
|
||||||
unsigned long long length;
|
unsigned long long length;
|
||||||
|
|
||||||
@ -1367,8 +1359,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 ((rc = rbd_discard(image, offset, length)) < 0) {
|
if (rbd_discard(image, offset, length) < 0) {
|
||||||
virReportSystemError(-rc, _("discarding %llu bytes failed on "
|
virReportSystemError(errno, _("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;
|
||||||
@ -1394,7 +1386,8 @@ 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 rc, ret = -1;
|
int rc = 0;
|
||||||
|
int ret = -1;
|
||||||
|
|
||||||
virCheckFlags(0, -1);
|
virCheckFlags(0, -1);
|
||||||
|
|
||||||
@ -1407,20 +1400,20 @@ virStorageBackendRBDVolWipe(virStoragePoolObjPtr pool,
|
|||||||
if (!ptr)
|
if (!ptr)
|
||||||
goto cleanup;
|
goto cleanup;
|
||||||
|
|
||||||
if ((rc = rbd_open(ptr->ioctx, vol->name, &image, NULL)) < 0) {
|
if (rbd_open(ptr->ioctx, vol->name, &image, NULL) < 0) {
|
||||||
virReportSystemError(-rc, _("failed to open the RBD image %s"),
|
virReportSystemError(errno, _("failed to open the RBD image %s"),
|
||||||
vol->name);
|
vol->name);
|
||||||
goto cleanup;
|
goto cleanup;
|
||||||
}
|
}
|
||||||
|
|
||||||
if ((rc = rbd_stat(image, &info, sizeof(info))) < 0) {
|
if (rbd_stat(image, &info, sizeof(info)) < 0) {
|
||||||
virReportSystemError(-rc, _("failed to stat the RBD image %s"),
|
virReportSystemError(errno, _("failed to stat the RBD image %s"),
|
||||||
vol->name);
|
vol->name);
|
||||||
goto cleanup;
|
goto cleanup;
|
||||||
}
|
}
|
||||||
|
|
||||||
if ((rc = rbd_get_stripe_count(image, &stripe_count)) < 0) {
|
if (rbd_get_stripe_count(image, &stripe_count) < 0) {
|
||||||
virReportSystemError(-rc, _("failed to get stripe count of RBD image %s"),
|
virReportSystemError(errno, _("failed to get stripe count of RBD image %s"),
|
||||||
vol->name);
|
vol->name);
|
||||||
goto cleanup;
|
goto cleanup;
|
||||||
}
|
}
|
||||||
@ -1452,7 +1445,7 @@ virStorageBackendRBDVolWipe(virStoragePoolObjPtr pool,
|
|||||||
}
|
}
|
||||||
|
|
||||||
if (rc < 0) {
|
if (rc < 0) {
|
||||||
virReportSystemError(-rc, _("failed to wipe RBD image %s"),
|
virReportSystemError(errno, _("failed to wipe RBD image %s"),
|
||||||
vol->name);
|
vol->name);
|
||||||
goto cleanup;
|
goto cleanup;
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user