
On 11/26/2014 08:58 AM, Stefan Berger wrote:
Some of the nwfilter tests are now failing since --concurrent shows up in the ebtables command. To avoid this, implement a few functions that allow to set the booleans indicating how the locking is to be done to false, overriding the probing.
Signed-off-by: Stefan Berger <stefanb@linux.vnet.ibm.com> --- src/libvirt_private.syms | 3 +++ src/util/virfirewall.c | 18 ++++++++++++++++++ src/util/virfirewall.h | 4 ++++ tests/nwfilterebiptablestest.c | 5 +++++ tests/nwfilterxml2firewalltest.c | 4 ++++ 5 files changed, 34 insertions(+)
diff --git a/src/libvirt_private.syms b/src/libvirt_private.syms index 2647d36..376826a 100644 --- a/src/libvirt_private.syms +++ b/src/libvirt_private.syms @@ -1353,7 +1353,10 @@ virFindFileInPath; virFirewallAddRule; virFirewallAddRuleFull; virFirewallApply; +virFirewallEbtablesNotUseLock;
Awkward naming scheme. If we keep it, I'd suggest virFirewallEbtablesAvoidLock (and similar for the other functions). But see below for an alternative suggestion with fewer lines of code required:
+++ b/src/util/virfirewall.c @@ -108,6 +108,24 @@ static bool iptablesUseLock; static bool ip6tablesUseLock; static bool ebtablesUseLock;
+void +virFirewallIptablesNotUseLock(void) +{ + iptablesUseLock = false; +} + +void +virFirewallIp6tablesNotUseLock(void) +{ + ip6tablesUseLock = false; +}
Rather than implementing 3 functions, why not just have one? Something like: static bool lockOverride; /* true to avoid lock probes */ void virFirewallSetLockOverride(bool avoid) { lockOverride = avoid; } static void virFirewallCheckUpdateLock(...) { if (lockOverride) return; ... existing body } -- Eric Blake eblake redhat com +1-919-301-3266 Libvirt virtualization library http://libvirt.org