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 -- libvir-list mailing list libvir-list@xxxxxxxxxx https://www.redhat.com/mailman/listinfo/libvir-list