• Ryan Harper's avatar
    Implement drive_del to decouple block removal from device removal · 9063f814
    Ryan Harper authored
    Currently device hotplug removal code is tied to device removal via
    ACPI.  All pci devices that are removable via device_del() require the
    guest to respond to the request.  In some cases the guest may not
    respond leaving the device still accessible to the guest.  The management
    layer doesn't currently have a reliable way to revoke access to host
    resource in the presence of an uncooperative guest.
    
    This patch implements a new monitor command, drive_del, which
    provides an explicit command to revoke access to a host block device.
    
    drive_del first quiesces the block device (qemu_aio_flush;
    bdrv_flush() and bdrv_close()).  This prevents further IO from being
    submitted against the host device.  Finally, drive_del cleans up
    pointers between the drive object (host resource) and the device
    object (guest resource).
    Signed-off-by: default avatarRyan Harper <ryanh@us.ibm.com>
    Signed-off-by: default avatarKevin Wolf <kwolf@redhat.com>
    9063f814
blockdev.c 17.1 KB