e6bcbcd qemu: reject rather than hang on blockcommit of active layer

Authored and Committed by ericb 9 years ago
    qemu: reject rather than hang on blockcommit of active layer
    
    qemu 2.0 added the ability to commit the active layer, but slightly
    differently than what libvirt had been anticipating in its
    implementation of the virDomainBlockCommit call.  As a result, if
    you attempt to do a 'virsh blockcommit $dom vda', qemu gets into a
    state where it is waiting on libvirt to end the job, while libvirt
    is waiting on qemu to end the job, and the guest is effectively
    hung with regards to further commands for that block device.
    
    I have patches coming down the pipeline that will add full support
    for blockcommit of the active layer when coupled with qemu 2.0 or
    later; but they depend on Peter's improvements to block job handling
    and form enough of a new feature that they are not ready for
    inclusion in the 1.2.5 release.  So for now, just reject the
    attempt, rather than letting the user get stuck.  This is no worse
    than the behavior of qemu 1.7 rejecting the job.
    
    * src/qemu/qemu_driver.c (qemuDomainBlockCommit): Reject active
    commit.
    
    Signed-off-by: Eric Blake <eblake@redhat.com>
    
        
file modified
+9 -0