[libvirt] [PATCH v2] Perform disk config validity checking for attach-device config
John Ferlan
jferlan at redhat.com
Thu Aug 21 11:32:48 UTC 2014
On 08/14/2014 11:53 AM, Ján Tomko wrote:
> On 08/07/2014 04:53 PM, John Ferlan wrote:
>> https://bugzilla.redhat.com/show_bug.cgi?id=1078126
>>
>> Using 'virsh attach-device --config' (or --persistent) to attach a
>> file backed lun device will succeed; however, subsequent domain restarts
>> will result in failure because the configuration of a file backed lun
>> is not supported.
>>
>> Although allowing 'illegal configurations' is something that can be
>> allowed, it may not be practical in this case. Generally, when attaching
>> a device to a domain means the domain must be running. A way around
>> this is using the --config (or --persistent) option. When an attach
>> is done to a running domain, a temporary configuration is modified
>> first followed by the live update. The live update will make a number
>> of disk validity checks when building the qemu command to attach the
>> disk. If any fail, then change is rejected.
>>
>> Rather than allow a potentially illegal combination, adjust the code
>> in the configuration path to make the same checks as the running path
>> will make with respect to disk validity checks. This way we avoid
>> having the potential for some subsequent start/reboot to fail because
>> an illegal combination was allowed.
>>
>> NB: The live path still checks the configuration since it is possible
>> to just do --live guest modification...
>>
>> Signed-off-by: John Ferlan <jferlan at redhat.com>
>> ---
>>
>> Changes since V1:
>> http://www.redhat.com/archives/libvir-list/2014-August/msg00045.html
>>
>> Based on #virt IRC discussion this morning
>> - move the qemu_caps checking to only occur during the live check
>> - slightly change the name of the called routine
>>
>> src/qemu/qemu_command.c | 127 +++++++++++++++++++++++++++---------------------
>> src/qemu/qemu_command.h | 2 +
>> src/qemu/qemu_driver.c | 2 +
>> 3 files changed, 76 insertions(+), 55 deletions(-)
>>
>> diff --git a/src/qemu/qemu_command.c b/src/qemu/qemu_command.c
>> index 033a5a8..c1791d9 100644
>> --- a/src/qemu/qemu_command.c
>> +++ b/src/qemu/qemu_command.c
>> @@ -3230,6 +3230,73 @@ qemuGetDriveSourceString(virStorageSourcePtr src,
>> }
>>
>>
>> +/* Perform disk definition config validity checks */
>> +int
>> +qemuBuildCheckDiskConfig(virDomainDiskDefPtr disk)
>
> Just a nitpick:
> 'Build' seems redundant here, how about just 'qemuCheckDiskConfig'?
>
> ACK either way.
>
> Jan
>
>
Adjusted function name and pushed.
Tks,
John
More information about the libvir-list
mailing list