From 67125e0d336ffca1c8dfeb058e3f7217d56c1642 Mon Sep 17 00:00:00 2001 From: Nikolay Shirokovskiy Date: Mon, 15 Oct 2018 11:26:28 +0300 Subject: [PATCH] nwfilter: Instantiate active filter bindings during driver init Commit 57f5621f modified nwfilterInstantiateFilter to detect when a filter binding was already present before attempting to add the new binding and instantiate it. Additionally, the change to nwfilterStateInitialize to call virNWFilterBindingObjListLoadAllConfigs (from commit c21679fa3f) to load active domain filter bindings, but not instantiate them eventually leads to a problem for the QEMU driver reconnection logic after a daemon restart where the filter bindings would no longer be instantiated. Subsequent commit f14c37ce4c replaced the nwfilterInstantiateFilter with virDomainConfNWFilterInstantiate which uses @ignoreExists to detect presence of the filter and still did not restore the filter instantiation call when making the new nwfilter bindings logic active. Thus in order to instantiate any active domain filter, we will call virNWFilterBuildAll with 'false' to indicate the need to go through all the active bindings calling virNWFilterInstantiateFilter to instantiate the filter bindings. Signed-off-by: Nikolay Shirokovskiy Reviewed-by: John Ferlan --- src/nwfilter/nwfilter_driver.c | 3 +++ 1 file changed, 3 insertions(+) diff --git a/src/nwfilter/nwfilter_driver.c b/src/nwfilter/nwfilter_driver.c index 1ee5162b9a..1ab906fd5a 100644 --- a/src/nwfilter/nwfilter_driver.c +++ b/src/nwfilter/nwfilter_driver.c @@ -264,6 +264,9 @@ nwfilterStateInitialize(bool privileged, if (virNWFilterBindingObjListLoadAllConfigs(driver->bindings, driver->bindingDir) < 0) goto error; + if (virNWFilterBuildAll(driver, false) < 0) + goto error; + nwfilterDriverUnlock(); return 0;