Before:
$ sudo virsh vol-create-as --pool vgvirt sparsetest --capacity 16M --allocation 0
error: Failed to create vol sparsetest
error: internal error Child process (/usr/sbin/lvchange -aln vgvirt/sparsetest) unexpected
exit status 5: One or more specified logical volume(s) not found.
After:
$ sudo virsh vol-create-as --pool vgvirt sparsetest --capacity 16M --allocation 0
error: Failed to create vol sparsetest
error: internal error Child process (/usr/sbin/lvcreate --name sparsetest -L 0K
--virtualsize 16384K vgvirt) unexpected exit status 5: Unable to create new logical
volume with no extents
---
src/storage/storage_backend_logical.c | 3 +++
1 file changed, 3 insertions(+)
diff --git a/src/storage/storage_backend_logical.c
b/src/storage/storage_backend_logical.c
index a9d785c..eebeec1 100644
--- a/src/storage/storage_backend_logical.c
+++ b/src/storage/storage_backend_logical.c
@@ -699,6 +699,7 @@ virStorageBackendLogicalCreateVol(virConnectPtr conn,
{
int fdret, fd = -1;
virCommandPtr cmd = NULL;
+ virErrorPtr err;
if (vol->target.encryption != NULL) {
virReportError(VIR_ERR_CONFIG_UNSUPPORTED,
@@ -775,9 +776,11 @@ virStorageBackendLogicalCreateVol(virConnectPtr conn,
return 0;
cleanup:
+ err = virSaveLastError();
VIR_FORCE_CLOSE(fd);
virStorageBackendLogicalDeleteVol(conn, pool, vol, 0);
virCommandFree(cmd);
+ virSetError(err);
return -1;
}
--
1.7.11.7