When the backing store of the image can't be parsed virStorageSourceNewFromBacking returns -1. storageBackendProbeTarget then also fails which makes the pool refresh fail or even the storage pool becomes inactive after (re)start of libvirtd. In situations when we can't access the backing store via network we just report the backing store string, thus we can do the same thing for unparsable backing store to prevent the pool from going offline. Signed-off-by: Peter Krempa <pkrempa@xxxxxxxxxx> --- src/storage/storage_util.c | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/src/storage/storage_util.c b/src/storage/storage_util.c index e71715f908..db2c7a18bf 100644 --- a/src/storage/storage_util.c +++ b/src/storage/storage_util.c @@ -3435,13 +3435,11 @@ storageBackendProbeTarget(virStorageSourcePtr target, return -1; if (meta->backingStoreRaw) { - if (virStorageSourceNewFromBacking(meta, &target->backingStore) < 0) - return -1; - /* XXX: Remote storage doesn't play nicely with volumes backed by * remote storage. To avoid trouble, just fake the backing store is RAW * and put the string from the metadata as the path of the target. */ - if (!virStorageSourceIsLocalStorage(target->backingStore)) { + if (virStorageSourceNewFromBacking(meta, &target->backingStore) < 0 || + !virStorageSourceIsLocalStorage(target->backingStore)) { virObjectUnref(target->backingStore); target->backingStore = virStorageSourceNew(); -- 2.29.2