Shivaprasad Bhat earlier sent patches to fix this problem which added a call to virNetDevExists() in the conf directory: https://www.redhat.com/archives/libvir-list/2015-March/msg00397.html (V1) https://www.redhat.com/archives/libvir-list/2015-March/msg00569.html (V2) https://www.redhat.com/archives/libvir-list/2015-March/msg01174.html (V3) https://www.redhat.com/archives/libvir-list/2015-March/msg01297.html (V4) After discussing it with him a few times (both email and irc), I decided that the only way to really understand the problems he described (related to locking) with my counterproposal (do the checking in the bridge driver itself), was to try fixing it myself. I do now understand the problems he encountered with locking, but also found that the instance of the call to the "Find a bridge name and set it" function that caused the problem was unnecessary (see the commit message of patch 1). The first patch here essentially reimplements current functionality but moving the majority of the code from conf/network_conf.c to network/bridge_driver.c. The 2nd patch adds the all-important virNetDevExists() call to the function that is looking for an unused bridge name. Laine Stump (2): network: move auto-assign of bridge name from XML parser to net driver network: check for bridge name conflict with existing devices src/conf/network_conf.c | 60 --------------------------- src/conf/network_conf.h | 9 +---- src/libvirt_private.syms | 2 +- src/network/bridge_driver.c | 98 ++++++++++++++++++++++++++++++++++++++++++++- 4 files changed, 99 insertions(+), 70 deletions(-) -- 2.1.0 -- libvir-list mailing list libvir-list@xxxxxxxxxx https://www.redhat.com/mailman/listinfo/libvir-list