• R
    qemu: call drive_del in DetachPciDiskDevice · aefaeb3d
    Ryan Harper 提交于
    Currently libvirt doesn't confirm whether the guest has responded to the
    disk removal request.  In some cases this can leave the guest with
    continued access to the device while the mgmt layer believes that it has
    been removed.  With a recent qemu monitor command[1] we can
    deterministically revoke a guests access to the disk (on the QEMU side)
    to ensure no futher access is permitted.
    
    This patch adds support for the drive_del() command and introduces it
    in the disk removal paths.  If the guest is running in a QEMU without this
    command we currently explicitly check for unknown command/CommandNotFound
    and log the issue.
    
    If QEMU supports the command we issue the drive_del command after we attempt
    to remove the device.  The guest may respond and remove the block device
    before we get to attempt to call drive_del.  In that case, we explicitly check
    for 'Device not found' from the monitor indicating that the target drive
    was auto-deleted upon guest responds to the device removal notification.
    
    1. http://thread.gmane.org/gmane.comp.emulators.qemu/84745Signed-off-by: NRyan Harper <ryanh@us.ibm.com>
    aefaeb3d
qemu_driver.c 414.3 KB