This is heavily based on John's work (except 1/6). The difference to his patches is in using virObjectRecursiveLockableNew() for recursive locks instead of RW locks and lock promoting. Also, in 6/6 I was more confident and removed driver lock from define/undefine APIs. John Ferlan (1): nwfilter: Remove need for nwfilterDriverLock in some API's Michal Privoznik (5): virObject: use virReportSystemError if applicable virObject: Introduce virObjectRecursiveLockableNew virNWFilterObj: Turn into virObjectLockable conf: Introduce and use virNWFilterObjEndAPI nwfilter: Convert _virNWFilterObjList to use virObjectRWLockable cfg.mk | 1 - src/conf/virdomainobjlist.c | 3 +- src/conf/virnwfilterobj.c | 504 +++++++++++++++++++++------------ src/conf/virnwfilterobj.h | 12 +- src/libvirt_private.syms | 5 +- src/nwfilter/nwfilter_driver.c | 65 ++--- src/nwfilter/nwfilter_gentech_driver.c | 11 +- src/util/virobject.c | 30 +- src/util/virobject.h | 4 + 9 files changed, 382 insertions(+), 253 deletions(-) -- 2.13.6 -- libvir-list mailing list libvir-list@xxxxxxxxxx https://www.redhat.com/mailman/listinfo/libvir-list