[libvirt] [PATCH v2 10/14] qemu_hotplug: new function qemuDomainRemoveAuditDevice()

Laine Stump laine at laine.org
Tue Mar 26 17:40:40 UTC 2019


On 3/26/19 12:58 PM, Ján Tomko wrote:
> On Mon, Mar 25, 2019 at 01:24:32PM -0400, Laine Stump wrote:
>> This function can be called with a virDomainDevicePtr and whether or
>> not the removal was successful, and it will call the appropriate
>> virDomainAudit*() function with the appropriate args for whatever type
>> of device it's given (or do nothing, if that's appropriate). This
>> permits generalizing some code that currently has a separate copy for
>> each type of device.
>>
>> NB: Although the function initially will be called only with
>> success=false, that has been made an argument so that in the future
>> (when the qemuDomainRemove*Device() functions have had their common
>> functionality consolidated into qemuDomainRemoveDevice()), this new
>> common code can call qemuDomainRemoveAuditDevice() for all types.
>>
>> Signed-off-by: Laine Stump <laine at laine.org>
>> ---
>>
>> change from V1:
>>
>> * only audit device types that were previously audited on *failure* to
>>  remove (this preserves previous behavior). Auditing of other device
>>  types is now added in new patch 11/14.
>>
>> * use ATTRIBUTE_UNUSED instead of "inline" to prevent compile error
>>  due to the new function not yet being used.
>>
>> src/qemu/qemu_hotplug.c | 55 +++++++++++++++++++++++++++++++++++++++++
>> 1 file changed, 55 insertions(+)
>>
>> diff --git a/src/qemu/qemu_hotplug.c b/src/qemu/qemu_hotplug.c
>> index de30b08dd1..92d4e7d0f9 100644
>> --- a/src/qemu/qemu_hotplug.c
>> +++ b/src/qemu/qemu_hotplug.c
>> @@ -5208,6 +5208,61 @@ 
>> qemuDomainRemoveRedirdevDevice(virQEMUDriverPtr driver,
>> }
>>
>>
>> +static void ATTRIBUTE_UNUSED
>> +qemuDomainRemoveAuditDevice(virDomainObjPtr vm,
>> +                            virDomainDeviceDefPtr detach,
>> +                            bool success)
>> +{
>> +    switch ((virDomainDeviceType)detach->type) {
>> +    case VIR_DOMAIN_DEVICE_DISK:
>> +        virDomainAuditDisk(vm, detach->data.disk->src, NULL, 
>> "detach", success);
>> +        break;
>> +    case VIR_DOMAIN_DEVICE_NET:
>> +        virDomainAuditNet(vm, detach->data.net, NULL, "detach", 
>> success);
>> +        break;
>> +    case VIR_DOMAIN_DEVICE_HOSTDEV:
>> +        virDomainAuditHostdev(vm, detach->data.hostdev, "detach", 
>> success);
>> +        break;
>> +
>> +    case VIR_DOMAIN_DEVICE_INPUT:
>> +    case VIR_DOMAIN_DEVICE_CHR:
>> +    case VIR_DOMAIN_DEVICE_RNG:
>> +    case VIR_DOMAIN_DEVICE_MEMORY:
>> +    case VIR_DOMAIN_DEVICE_SHMEM:
>> +    case VIR_DOMAIN_DEVICE_REDIRDEV:
>> +       /*
>> +        * These devices are supposed to be audited, but current code
>> +        * doesn't audit on failure to remove the device.
>> +        */
>> +       break;
>
> Indentation is off here.


Whew! This bothered me for a minute, since I'd already pushed 
everything, but when I looked at what was pushed, I realized that Peter 
requested different wording for the comment, and in the process of doing 
that, I had accidentally fixed the indentation.


Thanks for the attention to detail though!





More information about the libvir-list mailing list