Skip to content
  • Ryan Harper's avatar
    9063f814
    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
    Implement drive_del to decouple block removal from device removal
    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>
Loading