diff options
author | 2012-10-16 20:25:41 -0400 | |
---|---|---|
committer | 2012-10-16 22:55:41 -0500 | |
commit | 9daab54cb0ee40b2a3e578de0655a0dc8b5c5291 (patch) | |
tree | be418dbee94dd8b4c9820587c1db21a1b9afc037 | |
parent | Fix potential deadlock when agent is closed (diff) | |
download | libvirt-9daab54cb0ee40b2a3e578de0655a0dc8b5c5291.tar.gz libvirt-9daab54cb0ee40b2a3e578de0655a0dc8b5c5291.tar.bz2 libvirt-9daab54cb0ee40b2a3e578de0655a0dc8b5c5291.zip |
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
-rw-r--r-- | src/storage/storage_backend_logical.c | 3 |
1 files changed, 3 insertions, 0 deletions
diff --git a/src/storage/storage_backend_logical.c b/src/storage/storage_backend_logical.c index a9d785ccb..eebeec1ba 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; } |