On 01/12/2010 04:16 AM, Jim Meyering wrote:
Cole Robinson wrote:
> Signed-off-by: Cole Robinson <crobinso(a)redhat.com>
> ---
> src/qemu/qemu_driver.c | 10 ++++++++++
> 1 files changed, 10 insertions(+), 0 deletions(-)
>
> diff --git a/src/qemu/qemu_driver.c b/src/qemu/qemu_driver.c
> index fc6b9fa..38be88f 100644
> --- a/src/qemu/qemu_driver.c
> +++ b/src/qemu/qemu_driver.c
> @@ -2616,12 +2616,17 @@ static void qemudShutdownVMDaemon(virConnectPtr conn,
> int ret;
> int retries = 0;
> qemuDomainObjPrivatePtr priv = vm->privateData;
> + virErrorPtr origerr = NULL;
That assignment is technically what they call a dead store,
since the very next use is to overwrite that just-stored value.
So, to avoid warnings from the likes of the clang static checker,
do this instead:
virErrorPtr origerr;
Will do.
> if (!virDomainObjIsActive(vm))
> return;
>
> VIR_DEBUG("Shutting down VM '%s'", vm->def->name);
>
> + /* This method is routinely used in clean up paths. Disable error
> + * reporting so we don't squash a legit error. */
> + origerr = virSaveLastError();
> +
> if (driver->macFilter) {
> int i;
> virDomainDefPtr def = vm->def;
> @@ -2701,6 +2706,11 @@ retry:
> vm->def->id = -1;
> vm->newDef = NULL;
> }
> +
> + if (origerr) {
> + virSetError(origerr);
> + virFreeError(origerr);
> + }
> }
Hi Cole,
This looks like a fine series.
Is there an easy way to demonstrate the fix?
Thinking it'd be nice to have a test that exercises at least one piece
of the new code.
Not that I can think of. Doing qemu migration to a host with a firewall
blocked migration port would previously return 'Unknown Error', where as
now it will return 'migration did not complete successfully'. Not easily
automated unfortunately.
One tiny comment: people tend not to comprehend
"wordsthatareattachedlikethis".
So if you rename your "origerr" to e.g., "orig_err",
it will be more readable.
If you decide to make the change, you can do it quickly by doing
something like this (assuming the top 5 changes are the ones in this
series, and they've been rebased to the latest master):
git format-patch --stdout -5 | sed s/origerr/orig_err/ > patch
git co master
git co -b var-rename
git am patch
Sounds good, I'll make the adjustments and push.
Thanks,
Cole