Back in commit 2c71d3826, which appeared in libvirt-1.2.3 in April
2014, the location used to store saved MAC addresses and vlan tags of
SRIOV VFs was changed from /var/run/libvirt/qemu to
/var/run/libvirt/hostdevmgr. For backward compatibility the code was
made to continue looking in the old location for the files when it
didn't find them in the new location.
It's now been 6 years, and even if there was somebody still running
libvirt-1.2.3 on their system, that system would now be out of support
for libvirt, so there would be no way for them to upgrade to a new
libvirt that no longer looks in "oldStateDir" for the files. So
let's no longer look in "oldStateDir" for the files!
Signed-off-by: Laine Stump <laine(a)redhat.com>
---
src/hypervisor/virhostdev.c | 60 ++++++++-----------------------------
src/hypervisor/virhostdev.h | 6 ++--
src/libxl/libxl_domain.c | 2 +-
src/libxl/libxl_driver.c | 4 +--
src/qemu/qemu_hostdev.c | 3 +-
tests/virhostdevtest.c | 10 +++----
6 files changed, 23 insertions(+), 62 deletions(-)
diff --git a/src/hypervisor/virhostdev.c b/src/hypervisor/virhostdev.c
index bd35397f2c..09995a52ed 100644
--- a/src/hypervisor/virhostdev.c
+++ b/src/hypervisor/virhostdev.c
@@ -484,17 +484,9 @@ virHostdevSetNetConfig(virDomainHostdevDefPtr hostdev,
}
-/* @oldStateDir:
- * For upgrade purpose:
- * To an existing VM on QEMU, the hostdev netconfig file is originally stored
- * in cfg->stateDir (/var/run/libvirt/qemu). Switch to new version, it uses new
- * location (mgr->stateDir) but certainly will not find it. In this
- * case, try to find in the old state dir.
- */
static int
virHostdevRestoreNetConfig(virDomainHostdevDefPtr hostdev,
- const char *stateDir,
- const char *oldStateDir)
+ const char *stateDir)
{
g_autofree char *linkdev = NULL;
g_autofree virMacAddrPtr MAC = NULL;
@@ -528,16 +520,11 @@ virHostdevRestoreNetConfig(virDomainHostdevDefPtr hostdev,
NULL,
port_profile_associate);
} else {
- /* we need to try 3 different places for the config file:
+ /* we need to try 2 different places for the config file:
* 1) ${stateDir}/${PF}_vf${vf}
* This is almost always where the saved config is
*
- * 2) ${oldStateDir/${PF}_vf${vf}
- * saved config is only here if this machine was running a
- * (by now *very*) old version of libvirt that saved the
- * file in a different directory
- *
- * 3) ${stateDir}${PF[1]}_vf${VF}
+ * 2) ${stateDir}${PF[1]}_vf${VF}
* PF[1] means "the netdev for port 2 of the PF device", and
* is only valid when the PF is a Mellanox dual port NIC with
* a VF that was created in "single port" mode.
@@ -556,18 +543,7 @@ virHostdevRestoreNetConfig(virDomainHostdevDefPtr hostdev,
return -1;
}
- /* 2) "old" (pre-1.2.3 circa 2014) location - whenever we get
- * to the point that nobody will ever upgrade directly from
- * 1.2.3 (or older) directly to current libvirt, we can
- * eliminate this clause
- **/
- if (!(adminMAC || vlan || MAC) && oldStateDir &&
- virNetDevReadNetConfig(linkdev, vf, oldStateDir,
- &adminMAC, &vlan, &MAC) < 0) {
- return -1;
- }
-
- /* 3) try using the PF's "port 2" netdev as the name of the
+ /* 2) try using the PF's "port 2" netdev as the name of the
* config file
*/
if (!(adminMAC || vlan || MAC)) {
@@ -918,7 +894,7 @@ virHostdevPreparePCIDevicesImpl(virHostdevManagerPtr mgr,
resetvfnetconfig:
if (last_processed_hostdev_vf >= 0) {
for (i = 0; i <= last_processed_hostdev_vf; i++)
- virHostdevRestoreNetConfig(hostdevs[i], mgr->stateDir, NULL);
+ virHostdevRestoreNetConfig(hostdevs[i], mgr->stateDir);
}
reattachdevs:
@@ -960,8 +936,7 @@ virHostdevReAttachPCIDevicesImpl(virHostdevManagerPtr mgr,
const char *dom_name,
virPCIDeviceListPtr pcidevs,
virDomainHostdevDefPtr *hostdevs,
- int nhostdevs,
- const char *oldStateDir)
+ int nhostdevs)
{
size_t i;
@@ -1043,8 +1018,7 @@ virHostdevReAttachPCIDevicesImpl(virHostdevManagerPtr mgr,
if (actual) {
VIR_DEBUG("Restoring network configuration of PCI device %s",
virPCIDeviceGetName(actual));
- virHostdevRestoreNetConfig(hostdev, mgr->stateDir,
- oldStateDir);
+ virHostdevRestoreNetConfig(hostdev, mgr->stateDir);
}
}
}
@@ -1061,16 +1035,12 @@ virHostdevReAttachPCIDevicesImpl(virHostdevManagerPtr mgr,
}
-/* @oldStateDir:
- * For upgrade purpose: see virHostdevRestoreNetConfig
- */
void
virHostdevReAttachPCIDevices(virHostdevManagerPtr mgr,
const char *drv_name,
const char *dom_name,
virDomainHostdevDefPtr *hostdevs,
- int nhostdevs,
- const char *oldStateDir)
+ int nhostdevs)
{
g_autoptr(virPCIDeviceList) pcidevs = NULL;
@@ -1085,7 +1055,7 @@ virHostdevReAttachPCIDevices(virHostdevManagerPtr mgr,
}
virHostdevReAttachPCIDevicesImpl(mgr, drv_name, dom_name, pcidevs,
- hostdevs, nhostdevs, oldStateDir);
+ hostdevs, nhostdevs);
}
@@ -2120,23 +2090,18 @@ virHostdevPrepareDomainDevices(virHostdevManagerPtr mgr,
return 0;
}
-/* @oldStateDir
- * For upgrade purpose: see virHostdevReAttachPCIHostdevs
- */
void
virHostdevReAttachDomainDevices(virHostdevManagerPtr mgr,
const char *driver,
virDomainDefPtr def,
- unsigned int flags,
- const char *oldStateDir)
+ unsigned int flags)
{
if (!def->nhostdevs || !mgr)
return;
if (flags & VIR_HOSTDEV_SP_PCI) {
virHostdevReAttachPCIDevices(mgr, driver, def->name,
- def->hostdevs, def->nhostdevs,
- oldStateDir);
+ def->hostdevs, def->nhostdevs);
}
if (flags & VIR_HOSTDEV_SP_USB) {
@@ -2388,8 +2353,7 @@ virHostdevReAttachOneNVMeDevice(virHostdevManagerPtr hostdev_mgr,
goto cleanup;
virHostdevReAttachPCIDevicesImpl(hostdev_mgr,
- drv_name, dom_name, pciDevices,
- NULL, 0, NULL);
+ drv_name, dom_name, pciDevices, NULL, 0);
for (i = 0; i < virNVMeDeviceListCount(nvmeDevices); i++) {
virNVMeDevicePtr temp = virNVMeDeviceListGet(nvmeDevices, i);
diff --git a/src/hypervisor/virhostdev.h b/src/hypervisor/virhostdev.h
index 811bda40ed..19e1938d9e 100644
--- a/src/hypervisor/virhostdev.h
+++ b/src/hypervisor/virhostdev.h
@@ -113,8 +113,7 @@ virHostdevReAttachPCIDevices(virHostdevManagerPtr hostdev_mgr,
const char *drv_name,
const char *dom_name,
virDomainHostdevDefPtr *hostdevs,
- int nhostdevs,
- const char *oldStateDir)
+ int nhostdevs)
ATTRIBUTE_NONNULL(1);
void
virHostdevReAttachUSBDevices(virHostdevManagerPtr hostdev_mgr,
@@ -188,8 +187,7 @@ void
virHostdevReAttachDomainDevices(virHostdevManagerPtr mgr,
const char *driver,
virDomainDefPtr def,
- unsigned int flags,
- const char *oldStateDir)
+ unsigned int flags)
ATTRIBUTE_NONNULL(2) ATTRIBUTE_NONNULL(3);
/* functions used by NodeDevDetach/Reattach/Reset */
diff --git a/src/libxl/libxl_domain.c b/src/libxl/libxl_domain.c
index afa21bf02e..380f7e0b56 100644
--- a/src/libxl/libxl_domain.c
+++ b/src/libxl/libxl_domain.c
@@ -868,7 +868,7 @@ libxlDomainCleanup(libxlDriverPrivatePtr driver,
}
virHostdevReAttachDomainDevices(hostdev_mgr, LIBXL_DRIVER_INTERNAL_NAME,
- vm->def, hostdev_flags, NULL);
+ vm->def, hostdev_flags);
VIR_FREE(priv->lockState);
if (virDomainLockProcessPause(driver->lockManager, vm, &priv->lockState)
< 0)
diff --git a/src/libxl/libxl_driver.c b/src/libxl/libxl_driver.c
index 3eaf106006..f480f8067e 100644
--- a/src/libxl/libxl_driver.c
+++ b/src/libxl/libxl_driver.c
@@ -3153,7 +3153,7 @@ libxlDomainAttachHostPCIDevice(libxlDriverPrivatePtr driver,
error:
virHostdevReAttachPCIDevices(hostdev_mgr, LIBXL_DRIVER_INTERNAL_NAME,
- vm->def->name, &hostdev, 1, NULL);
+ vm->def->name, &hostdev, 1);
cleanup:
virObjectUnref(cfg);
@@ -3690,7 +3690,7 @@ libxlDomainDetachHostPCIDevice(libxlDriverPrivatePtr driver,
virDomainHostdevRemove(vm->def, idx);
virHostdevReAttachPCIDevices(hostdev_mgr, LIBXL_DRIVER_INTERNAL_NAME,
- vm->def->name, &hostdev, 1, NULL);
+ vm->def->name, &hostdev, 1);
ret = 0;
diff --git a/src/qemu/qemu_hostdev.c b/src/qemu/qemu_hostdev.c
index 721fe5da82..57971214b7 100644
--- a/src/qemu/qemu_hostdev.c
+++ b/src/qemu/qemu_hostdev.c
@@ -406,11 +406,10 @@ qemuHostdevReAttachPCIDevices(virQEMUDriverPtr driver,
int nhostdevs)
{
g_autoptr(virQEMUDriverConfig) cfg = virQEMUDriverGetConfig(driver);
- const char *oldStateDir = cfg->stateDir;
virHostdevManagerPtr hostdev_mgr = driver->hostdevMgr;
virHostdevReAttachPCIDevices(hostdev_mgr, QEMU_DRIVER_NAME, name,
- hostdevs, nhostdevs, oldStateDir);
+ hostdevs, nhostdevs);
}
void
diff --git a/tests/virhostdevtest.c b/tests/virhostdevtest.c
index 40c14a5281..91f9112e8b 100644
--- a/tests/virhostdevtest.c
+++ b/tests/virhostdevtest.c
@@ -245,13 +245,13 @@ testVirHostdevReAttachPCIHostdevs_unmanaged(void)
inactive_count = virPCIDeviceListCount(mgr->inactivePCIHostdevs);
VIR_TEST_DEBUG("Test 0 hostdevs");
- virHostdevReAttachPCIDevices(mgr, drv_name, dom_name, NULL, 0, NULL);
+ virHostdevReAttachPCIDevices(mgr, drv_name, dom_name, NULL, 0);
CHECK_PCI_LIST_COUNT(mgr->activePCIHostdevs, active_count);
CHECK_PCI_LIST_COUNT(mgr->inactivePCIHostdevs, inactive_count);
VIR_TEST_DEBUG("Test >=1 unmanaged hostdevs");
virHostdevReAttachPCIDevices(mgr, drv_name, dom_name,
- hostdevs, nhostdevs, NULL);
+ hostdevs, nhostdevs);
CHECK_PCI_LIST_COUNT(mgr->activePCIHostdevs, active_count - nhostdevs);
CHECK_PCI_LIST_COUNT(mgr->inactivePCIHostdevs, inactive_count + nhostdevs);
@@ -329,13 +329,13 @@ testVirHostdevReAttachPCIHostdevs_managed(bool mixed)
inactive_count = virPCIDeviceListCount(mgr->inactivePCIHostdevs);
VIR_TEST_DEBUG("Test 0 hostdevs");
- virHostdevReAttachPCIDevices(mgr, drv_name, dom_name, NULL, 0, NULL);
+ virHostdevReAttachPCIDevices(mgr, drv_name, dom_name, NULL, 0);
CHECK_PCI_LIST_COUNT(mgr->activePCIHostdevs, active_count);
CHECK_PCI_LIST_COUNT(mgr->inactivePCIHostdevs, inactive_count);
VIR_TEST_DEBUG("Test >=1 hostdevs");
virHostdevReAttachPCIDevices(mgr, drv_name, dom_name,
- hostdevs, nhostdevs, NULL);
+ hostdevs, nhostdevs);
CHECK_PCI_LIST_COUNT(mgr->activePCIHostdevs, active_count - nhostdevs);
/* If testing a mixed roundtrip, devices are added back to the inactive
* list as soon as we detach from the guest */
@@ -542,7 +542,7 @@ testNVMeDiskRoundtrip(const void *opaque G_GNUC_UNUSED)
/* Don't rely on a state that previous test cases might have
* left the manager in. Start with a clean slate. */
virHostdevReAttachPCIDevices(mgr, drv_name, dom_name,
- hostdevs, nhostdevs, NULL);
+ hostdevs, nhostdevs);
CHECK_NVME_LIST_COUNT(mgr->activeNVMeHostdevs, 0);
CHECK_PCI_LIST_COUNT(mgr->activePCIHostdevs, 0);
--
2.29.2