From dd2f524c6b06e8283740d60f0b10056758c2d245 Mon Sep 17 00:00:00 2001 From: Cole Robinson Date: Tue, 16 Oct 2012 20:25:41 -0400 Subject: [PATCH] storage: lvm: Don't overwrite lvcreate errors 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 (cherry picked from commit 01df6f2bff98d8fc68350ab90c212780ef9db67a) Conflicts: src/storage/storage_backend_logical.c --- 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 9a91dd9a74..302c3dd7cb 100644 --- a/src/storage/storage_backend_logical.c +++ b/src/storage/storage_backend_logical.c @@ -679,6 +679,7 @@ virStorageBackendLogicalCreateVol(virConnectPtr conn, "-s", vol->backingStore.path, NULL }; const char **cmdargv = cmdargvnew; + virErrorPtr err; if (vol->target.encryption != NULL) { virStorageReportError(VIR_ERR_CONFIG_UNSUPPORTED, @@ -750,8 +751,10 @@ virStorageBackendLogicalCreateVol(virConnectPtr conn, return 0; cleanup: + err = virSaveLastError(); VIR_FORCE_CLOSE(fd); virStorageBackendLogicalDeleteVol(conn, pool, vol, 0); + virSetError(err); return -1; } -- 2.47.3