From: John Ferlan Date: Thu, 6 Dec 2018 17:33:30 +0000 (-0500) Subject: storage: Use consistent error preservation and restoration calls X-Git-Url: http://xenbits.xensource.com/gitweb?a=commitdiff_plain;h=7c47becf765541bbafecdafff12a4b81967806db;p=libvirt.git storage: Use consistent error preservation and restoration calls Provide some consistency over error message variable name and usage when saving error messages across possible other errors or possibility of resetting of the last error. Instead of virSaveLastError paired up with virSetError and virFreeError, we should use the newer virErrorPreserveLast and virRestoreError. Signed-off-by: John Ferlan Reviewed-by: Michal Privoznik --- diff --git a/src/storage/storage_backend_disk.c b/src/storage/storage_backend_disk.c index 1228da1f47..49590019c5 100644 --- a/src/storage/storage_backend_disk.c +++ b/src/storage/storage_backend_disk.c @@ -918,10 +918,9 @@ virStorageBackendDiskCreateVol(virStoragePoolObjPtr pool, /* Best effort to remove the partition. Ignore any errors * since we could be calling this with vol->target.path == NULL */ - save_err = virSaveLastError(); + virErrorPreserveLast(&save_err); ignore_value(virStorageBackendDiskDeleteVol(pool, vol, 0)); - virSetError(save_err); - virFreeError(save_err); + virErrorRestore(&save_err); return -1; } diff --git a/src/storage/storage_backend_logical.c b/src/storage/storage_backend_logical.c index 9be6d61a12..5de21103f5 100644 --- a/src/storage/storage_backend_logical.c +++ b/src/storage/storage_backend_logical.c @@ -969,10 +969,9 @@ virStorageBackendLogicalCreateVol(virStoragePoolObjPtr pool, return 0; error: - err = virSaveLastError(); + virErrorPreserveLast(&err); virStorageBackendLogicalDeleteVol(pool, vol, 0); - virSetError(err); - virFreeError(err); + virErrorRestore(&err); return -1; } diff --git a/src/storage/storage_driver.c b/src/storage/storage_driver.c index 981f2a4301..da09d7de13 100644 --- a/src/storage/storage_driver.c +++ b/src/storage/storage_driver.c @@ -81,18 +81,16 @@ storagePoolRefreshFailCleanup(virStorageBackendPtr backend, virStoragePoolObjPtr obj, const char *stateFile) { - virErrorPtr orig_err = virSaveLastError(); + virErrorPtr orig_err; + virErrorPreserveLast(&orig_err); virStoragePoolObjClearVols(obj); if (stateFile) unlink(stateFile); if (backend->stopPool) backend->stopPool(obj); - if (orig_err) { - virSetError(orig_err); - virFreeError(orig_err); - } + virErrorRestore(&orig_err); }