Sign Up
Log In
Log In
or
Sign Up
Places
All Projects
Status Monitor
Collapse sidebar
SUSE:SLE-12-SP1:Update
libvirt.10484
15dee2ef-block-job.patch
Overview
Repositories
Revisions
Requests
Users
Attributes
Meta
File 15dee2ef-block-job.patch of Package libvirt.10484
commit 15dee2ef24f2f19f6dcd30d997b81c8a14582361 Author: Michael Chapman <mike@very.puzzling.org> Date: Wed Jan 27 13:24:52 2016 +1100 virsh: be consistent with style of loop exit When waiting for a block job, the various statuses (COMPLETED, READY, CANCELED, etc.) should all be treated consistently by having the loop be exited with "break". Use "goto cleanup" for the error cases only, when no block job status is available. Signed-off-by: Michael Chapman <mike@very.puzzling.org> Index: libvirt-1.2.18.4/tools/virsh-domain.c =================================================================== --- libvirt-1.2.18.4.orig/tools/virsh-domain.c +++ libvirt-1.2.18.4/tools/virsh-domain.c @@ -1885,21 +1885,23 @@ vshBlockJobWait(vshBlockJobWaitDataPtr d * the waiting loop */ if ((data->cb_id >= 0 || data->cb_id2 >= 0) && data->status != -1) { ret = data->status; - goto cleanup; + break; } /* since virsh can't guarantee that the path provided by the user will * later be matched in the event we will need to keep the fallback * approach and claim success if the block job finishes or vanishes. */ - if (result == 0) + if (result == 0) { + ret = VIR_DOMAIN_BLOCK_JOB_COMPLETED; break; + } /* for two-phase jobs we will try to wait in the synchronized phase * for event arrival since 100% completion doesn't necessarily mean that * the block job has finished and can be terminated with success */ if (info.end == info.cur && --retries == 0) { ret = VIR_DOMAIN_BLOCK_JOB_READY; - goto cleanup; + break; } if (data->verbose && (info.cur != last.cur || info.end != last.end)) @@ -1919,21 +1921,19 @@ vshBlockJobWait(vshBlockJobWaitDataPtr d } ret = VIR_DOMAIN_BLOCK_JOB_CANCELED; - goto cleanup; + break; } usleep(500 * 1000); } - ret = VIR_DOMAIN_BLOCK_JOB_COMPLETED; - - cleanup: /* print 100% completed */ if (data->verbose && (ret == VIR_DOMAIN_BLOCK_JOB_COMPLETED || ret == VIR_DOMAIN_BLOCK_JOB_READY)) vshPrintJobProgress(data->job_name, 0, 1); + cleanup: sigaction(SIGINT, &old_sig_action, NULL); return ret; }
Locations
Projects
Search
Status Monitor
Help
OpenBuildService.org
Documentation
API Documentation
Code of Conduct
Contact
Support
@OBShq
Terms
openSUSE Build Service is sponsored by
The Open Build Service is an
openSUSE project
.
Sign Up
Log In
Places
Places
All Projects
Status Monitor