render / rpms / libvirt

Forked from rpms/libvirt 9 months ago
Clone
c401cc
From f5747e26f970288c161d947790b2838384971434 Mon Sep 17 00:00:00 2001
c401cc
Message-Id: <f5747e26f970288c161d947790b2838384971434.1389183248.git.jdenemar@redhat.com>
c401cc
From: Laine Stump <laine@laine.org>
c401cc
Date: Tue, 24 Dec 2013 04:24:03 -0700
c401cc
Subject: [PATCH] qemu: avoid duplicate security label restore on hostdev
c401cc
 attach failure
c401cc
c401cc
This eliminates the misleading error message that was being logged
c401cc
when a vfio hostdev hotplug failed:
c401cc
c401cc
  error: unable to set user and group to '107:107' on '/dev/vfio/22':
c401cc
         No such file or directory
c401cc
c401cc
as documented in:
c401cc
c401cc
  https://bugzilla.redhat.com/show_bug.cgi?id=1035490
c401cc
c401cc
Commit ee414b5d (pushed as a fix for Bug 1016511 and part of Bug
c401cc
1025108) replaced the single call to
c401cc
virSecurityManagerSetHostdevLabel() in qemuDomainAttachHostDevice()
c401cc
with individual calls to that same function in each
c401cc
device-type-specific attach function (for PCI, USB, and SCSI). It also
c401cc
added a corresponding call to virSecurityManagerRestoreHostdevLabel()
c401cc
in the error handling of the device-type-specific functions, but
c401cc
forgot to remove the common call to that from
c401cc
qemuDomainAttachHostDevice() - this resulted in a duplicate call to
c401cc
virSecurityManagerRestoreHostdevLabel(), with the second occurrence
c401cc
being after (e.g.) a PCI device has already been re-attached to the
c401cc
host driver, thus destroying some of the device nodes / links that we
c401cc
then attempted to re-label (e.f. /dev/vfio/22) and generating an error
c401cc
log that obscured the original error.
c401cc
c401cc
(cherry picked from commit c0f511ee2bfeb4b177b301ed73f3a9d86b4d4dbd)
c401cc
c401cc
Signed-off-by: Jiri Denemark <jdenemar@redhat.com>
c401cc
---
c401cc
 src/qemu/qemu_hotplug.c | 3 ---
c401cc
 1 file changed, 3 deletions(-)
c401cc
c401cc
diff --git a/src/qemu/qemu_hotplug.c b/src/qemu/qemu_hotplug.c
c401cc
index fae7e14..0f2be8a 100644
c401cc
--- a/src/qemu/qemu_hotplug.c
c401cc
+++ b/src/qemu/qemu_hotplug.c
c401cc
@@ -1520,9 +1520,6 @@ int qemuDomainAttachHostDevice(virQEMUDriverPtr driver,
c401cc
     return 0;
c401cc
 
c401cc
 error:
c401cc
-    if (virSecurityManagerRestoreHostdevLabel(driver->securityManager,
c401cc
-                                              vm->def, hostdev, NULL) < 0)
c401cc
-        VIR_WARN("Unable to restore host device labelling on hotplug fail");
c401cc
     return -1;
c401cc
 }
c401cc
 
c401cc
-- 
c401cc
1.8.5.2
c401cc