
On 04/27/2012 06:37 AM, Jiri Denemark wrote:
On Thu, Apr 26, 2012 at 13:08:36 -0600, Eric Blake wrote:
With RHEL 6.2, virDomainBlockPull(dom, dev, bandwidth, 0) has a race with non-zero bandwidth: there is a window between the block_stream and block_job_set_speed monitor commands where an unlimited amount of data was let through, defeating the point of a throttle.
* src/qemu/qemu_monitor.h (enum BLOCK_JOB_CMD): Drop unused value, rename enum to match conventions. * src/qemu/qemu_monitor.c (qemuMonitorBlockJob): Reflect enum rename. * src/qemu_qemu_monitor_json.h (qemuMonitorJSONBlockJob): Likewise. * src/qemu/qemu_monitor_json.c (qemuMonitorJSONBlockJob): Likewise, and support difference between RHEL 6.2 and qemu 1.1 block pull. * src/qemu/qemu_driver.c (qemuDomainBlockJobImpl): Reject bandwidth during pull with too-old qemu. * src/libvirt.c (virDomainBlockPull, virDomainBlockRebase): Document this. ---
v2: fix integer overflow, improve variable naming
src/libvirt.c | 8 ++++- src/qemu/qemu_driver.c | 8 +++-- src/qemu/qemu_monitor.c | 25 +++++++++++++----- src/qemu/qemu_monitor.h | 15 +++++----- src/qemu/qemu_monitor_json.c | 59 +++++++++++++++++++++++------------------ src/qemu/qemu_monitor_json.h | 6 ++-- 6 files changed, 72 insertions(+), 49 deletions(-)
ACK
Thanks, pushed. -- Eric Blake eblake@redhat.com +1-919-301-3266 Libvirt virtualization library http://libvirt.org