The patchset starts slowly, with small patches, and small changes, accelerating towards the end, with big changes. I know that network driver is not used as intensely as domain drivers, but hey, if we remove 100 lines (and substitute some others) we get fine grained locking! And cleaner code, of course. Oh, and this is meant for next release, obviously :) Michal Privoznik (31): networkLookupByUUID: Improve error message bridge_driver: Don't check network active unlocked testNetworkUpdate: Unlock network at the end networkGetNetworkAddress: Drop empty 'error' label virNetworkObjIsDuplicate: s/@doms/@nets/ virNetworkObjListFree: Accept NULL virNetworkObjListExport: Pass virNetworkObjListPtr test_driver: s/virNetworkObjList/virNetworkObjListPtr/ parallels: s/virNetworkObjList/virNetworkObjListPtr/ bridge_driver: s/virNetworkObjList/virNetworkObjListPtr/ conf: s/virNetworkFindByUUID/virNetworkObjFindByUUID/ conf: s/virNetworkFindByUUID/virNetworkObjFindByUUID/ network_conf: Introduce virNetworkObjListForEach network_conf: Introduce virNetworkObjListGetNames network_conf: Introduce virNetworkObjListNumOfNetworks bridge_driver: Adapt to new virNetworkObjList accessors test_driver: Adapt to new virNetworkObjList accessors parallels_network: Adapt to new virNetworkObjList accessors network_conf: Turn virNetworkObjList into virObject network_conf: Turn struct _virNetworkObjList private network_conf: Make virNetworkObj actually virObject virNetworkObjList: Derive from virObjectLockableClass network_conf: Introduce virNetworkObjEndAPI bridge_driver: Use virNetworkObjEndAPI test_driver: Use virNetworkObjEndAPI parallels_network: Use virNetworkObjEndAPI virNetworkObjListPtr: Make APIs self-locking virNetworkObjFindBy*: Return an reference to found object bridge_driver: Drop networkDriverLock() from almost everywhere test_driver: Drop testDriverLock() from almost everywhere parallels_network: Drop parallelsDriverLock() from everywhere. cfg.mk | 3 - src/conf/network_conf.c | 372 +++++++++++++++++++------- src/conf/network_conf.h | 51 ++-- src/libvirt_private.syms | 14 +- src/network/bridge_driver.c | 502 ++++++++++++++--------------------- src/network/bridge_driver_platform.h | 2 +- src/parallels/parallels_driver.c | 5 +- src/parallels/parallels_network.c | 144 +++------- src/parallels/parallels_utils.h | 2 +- src/test/test_driver.c | 223 ++++------------ tests/networkxml2conftest.c | 4 +- tests/objectlocking.ml | 2 - 12 files changed, 612 insertions(+), 712 deletions(-) -- 2.0.5 -- libvir-list mailing list libvir-list@xxxxxxxxxx https://www.redhat.com/mailman/listinfo/libvir-list