On Wed, Jun 11, 2025 at 21:57:15 +0000, Krisstoffe wrote:
From: Krisstoffe <krisstoffe(a)free.fr>
I'll add a note that this is the same approach we use e.g. in the gluster
storage driver backend.
Resolves:
https://gitlab.com/libvirt/libvirt/-/issues/448
Signed-off-by: Krisstoffe <krisstoffe(a)free.fr>
---
src/storage/storage_backend_rbd.c | 12 ++++++++++++
1 file changed, 12 insertions(+)
diff --git a/src/storage/storage_backend_rbd.c b/src/storage/storage_backend_rbd.c
index 038a1a9e34..29d544d349 100644
--- a/src/storage/storage_backend_rbd.c
+++ b/src/storage/storage_backend_rbd.c
@@ -1442,9 +1442,21 @@ virStorageBackendRBDVolWipe(virStoragePoolObj *pool,
}
+static int
+virStorageBackendRBDCheckPool(virStoragePoolObj *pool,
+ bool *active)
+{
+ /* Return previous state remembered by the status XML. If the pool is not
+ * available we will fail to refresh it and end up in the same situation. */
+ *active = virStoragePoolObjIsActive(pool);
+ return 0;
+}
+
+
virStorageBackend virStorageBackendRBD = {
.type = VIR_STORAGE_POOL_RBD,
+ .checkPool = virStorageBackendRBDCheckPool,
.refreshPool = virStorageBackendRBDRefreshPool,
.createVol = virStorageBackendRBDCreateVol,
.buildVol = virStorageBackendRBDBuildVol,
Reviewed-by: Peter Krempa <pkrempa(a)redhat.com>