1
0
mirror of https://gitlab.com/libvirt/libvirt.git synced 2025-03-20 07:59:00 +00:00

rbd: Add volStorageBackendRBDGetFeatures() for internal calls

As more and more features are added to RBD volumes we will need to
call this method more often.

By moving it into a internal function we can re-use code inside the
storage backend.

Signed-off-by: Wido den Hollander <wido@widodh.nl>
This commit is contained in:
Wido den Hollander 2016-02-11 17:04:15 +01:00 committed by John Ferlan
parent 9a457be18b
commit b61871c06f

View File

@ -279,6 +279,24 @@ virStorageBackendRBDCloseRADOSConn(virStorageBackendRBDStatePtr ptr)
return ret;
}
static int
volStorageBackendRBDGetFeatures(rbd_image_t image,
const char *volname,
uint64_t *features)
{
int r, ret = -1;
if ((r = rbd_get_features(image, features)) < 0) {
virReportSystemError(-r, _("failed to get the features of RBD image "
"%s"), volname);
goto cleanup;
}
ret = 0;
cleanup:
return ret;
}
static int
volStorageBackendRBDRefreshVolInfo(virStorageVolDefPtr vol,
virStoragePoolObjPtr pool,
@ -685,11 +703,8 @@ virStorageBackendRBDImageInfo(rbd_image_t image,
goto cleanup;
}
if ((r = rbd_get_features(image, features)) < 0) {
virReportSystemError(-r, _("failed to get the features of RBD image %s"),
volname);
if (volStorageBackendRBDGetFeatures(image, volname, features) < 0)
goto cleanup;
}
if ((r = rbd_get_stripe_unit(image, stripe_unit)) < 0) {
virReportSystemError(-r, _("failed to get the stripe unit of RBD image %s"),