From b61871c06fcca5f59da1b728f04d5de8ef07aae2 Mon Sep 17 00:00:00 2001 From: Wido den Hollander Date: Thu, 11 Feb 2016 17:04:15 +0100 Subject: [PATCH] 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 --- src/storage/storage_backend_rbd.c | 23 +++++++++++++++++++---- 1 file changed, 19 insertions(+), 4 deletions(-) diff --git a/src/storage/storage_backend_rbd.c b/src/storage/storage_backend_rbd.c index 5d73370936..5f2469f4f9 100644 --- a/src/storage/storage_backend_rbd.c +++ b/src/storage/storage_backend_rbd.c @@ -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"), -- GitLab