Bug 970761
Summary: | libvirt should minimize use of drive_del | ||
---|---|---|---|
Product: | [Community] Virtualization Tools | Reporter: | Eric Blake <eblake> |
Component: | libvirt | Assignee: | Libvirt Maintainers <libvirt-maint> |
Status: | CLOSED CURRENTRELEASE | QA Contact: | |
Severity: | unspecified | Docs Contact: | |
Priority: | unspecified | ||
Version: | unspecified | CC: | armbru, jtomko, rbalakri, shyu |
Target Milestone: | --- | ||
Target Release: | --- | ||
Hardware: | Unspecified | ||
OS: | Unspecified | ||
Whiteboard: | |||
Fixed In Version: | Doc Type: | Bug Fix | |
Doc Text: | Story Points: | --- | |
Clone Of: | Environment: | ||
Last Closed: | 2015-03-18 07:33:17 UTC | Type: | Bug |
Regression: | --- | Mount Type: | --- |
Documentation: | --- | CRM: | |
Verified Versions: | Category: | --- | |
oVirt Team: | --- | RHEL 7.3 requirements from Atomic Host: | |
Cloudforms Team: | --- | Target Upstream Version: | |
Embargoed: |
Description
Eric Blake
2013-06-04 19:32:08 UTC
Inconsistency alert: destroying a device model (e.g. successful device_del) automatically destroys any block backends ("drives") still connected to it. This is *not* the case for other kinds of backends. Why? Lack of adult supervision, I guess. Can't be changed now. It can (and in my opinion should) be changed for block backends created by a future replacement of -drive and drive_add. Sane uses for drive_del: * Violently revoke a guest's access to a drive when peaceful methods failed. Typical example: device_del doesn't complete within a reasonable time, say because the guest doesn't honor ACPI unplug. * Delete a drive that is not connected to a device model. Currently, a drive can only be unconnected when it has never been connected. In the future, we might have ways to disconnect. I'm quite suspicious of other uses. commit 0635785b6e97a8a6ac818d9711633043f895f659 Author: Jiri Denemark <jdenemar> AuthorDate: 2014-05-27 12:09:09 +0200 Commit: Jiri Denemark <jdenemar> CommitDate: 2014-06-03 10:58:06 +0200 qemu: Remove disk backend only after frontend is gone In general, we should only remove a backend after seeing DEVICE_DELETED event for a corresponding frontend. This doesn't make any difference for disks attached using -drive or drive_add since QEMU automatically removes their backends but it's still better to make our code consistent. And it may start making difference in case we switch to attaching disks using -blockdev. Signed-off-by: Jiri Denemark <jdenemar> git describe: v1.2.5-32-g0635785 contains: v1.2.6-rc1~210 |