]> xenbits.xensource.com Git - libvirt.git/commitdiff
qemu: avoid duplicate security label restore on hostdev attach failure
authorLaine Stump <laine@laine.org>
Thu, 19 Dec 2013 11:09:05 +0000 (13:09 +0200)
committerLaine Stump <laine@laine.org>
Mon, 23 Dec 2013 11:16:57 +0000 (13:16 +0200)
This eliminates the misleading error message that was being logged
when a vfio hostdev hotplug failed:

  error: unable to set user and group to '107:107' on '/dev/vfio/22':
         No such file or directory

as documented in:

  https://bugzilla.redhat.com/show_bug.cgi?id=1035490

Commit ee414b5d (pushed as a fix for Bug 1016511 and part of Bug
1025108) replaced the single call to
virSecurityManagerSetHostdevLabel() in qemuDomainAttachHostDevice()
with individual calls to that same function in each
device-type-specific attach function (for PCI, USB, and SCSI). It also
added a corresponding call to virSecurityManagerRestoreHostdevLabel()
in the error handling of the device-type-specific functions, but
forgot to remove the common call to that from
qemuDomainAttachHostDevice() - this resulted in a duplicate call to
virSecurityManagerRestoreHostdevLabel(), with the second occurrence
being after (e.g.) a PCI device has already been re-attached to the
host driver, thus destroying some of the device nodes / links that we
then attempted to re-label (e.f. /dev/vfio/22) and generating an error
log that obscured the original error.

src/qemu/qemu_hotplug.c

index 4a2c5ce0f69861500e293535543301349a3447e6..7a8caf1f43d2963c488803170f7649cc3d6c5ad0 100644 (file)
@@ -1666,9 +1666,6 @@ int qemuDomainAttachHostDevice(virQEMUDriverPtr driver,
     return 0;
 
 error:
-    if (virSecurityManagerRestoreHostdevLabel(driver->securityManager,
-                                              vm->def, hostdev, NULL) < 0)
-        VIR_WARN("Unable to restore host device labelling on hotplug fail");
     return -1;
 }