[libvirt] [PATCH 00/17] nwfilter adjustments for common object

John Ferlan jferlan at redhat.com
Fri Jun 2 10:25:21 UTC 2017


As noted in the recently posted virObject changes:

https://www.redhat.com/archives/libvir-list/2017-June/msg00070.html

I believe I've found a way to handle the recursive lock situation that
made it "difficult" (at best) to convert the nwfilter to the common
object model. It does involve a bit of a circuitous route to "temporarily
implement" the refcnt in nwfilter, but that gets removed rather quickly.

Beyond that there's a bit of setup, the first few patches deal with
issues seen while working through this code and then more setup for
getting things to be more common with other drivers (so when they
disappear a bit further into the future) into some new object it'll
be obvious where/why they're there.

The middle few patches deal with an insane naming scheme for a single
function that seemed to keep prefixing "_" as a new function was created.
So it's a bit of name change, but makes it easier to think about.

The last 4 patches deal with the conversion to use a @ref, a change
to a list locking hash table model, the modificiation of the recursive
instantiation to use @refs rather than @locks, and finally the change
to use the existing lockable object.

I have run these through the various avacodo nwfilter tests that I could
find, but perhaps if someone that had a more "robust configuration" and
wants to be a bit adventurous and also give the patches a whirl - that
would be appreciated.


John Ferlan (17):
  nwfilter: Fix return value comparison for
    virNWFilterTriggerVMFilterRebuild
  nwfilter: Fix possible corruption on failure path during LoadConfig
  nwfilter: Fix possible locking problem in LoadConfig error path
  nwfilter: Remove need for virNWFilterSaveXML
  nwfilter: Move virNWFilterSaveConfig virnwfilterobj
  nwfilter: Add configFile into virNWFilterObj
  nwfilter: Add @def into virNWFilterObjNew
  nwfilter: Clean up a couple nwfilter_driver error paths
  nwfilter: Consistently name virNWFilterPtr in driver
  nwfilter: Rename virNWFilterInstantiate
  nwfilter: Rename __virNWFilterInstantiateFilter
  nwfilter: Rename _virNWFilterInstantiateFilter
  nwfilter: Introduce virNWFilterObjListFindInstantiateFilter
  nwfilter: Add @refs logic to __virNWFilterObj
  nwfilter: Convert _virNWFilterObjList to be a virObjectLockable
  nwfilter: Remove recursive locking for nwfilter instantiation
  nwfilter: Convert virNWFilterObj to use virObjectLockable

 src/conf/nwfilter_conf.c               |  43 ---
 src/conf/nwfilter_conf.h               |   9 -
 src/conf/virnwfilterobj.c              | 550 +++++++++++++++++++++++----------
 src/conf/virnwfilterobj.h              |  19 +-
 src/libvirt_private.syms               |   6 +-
 src/nwfilter/nwfilter_driver.c         |  51 ++-
 src/nwfilter/nwfilter_gentech_driver.c | 276 +++++++----------
 7 files changed, 542 insertions(+), 412 deletions(-)

-- 
2.9.4




More information about the libvir-list mailing list