Check for isAgent() outside the network lock to avoid deadlocks

Signed-off-by: Madhu Venugopal <madhu@docker.com>
This commit is contained in:
Madhu Venugopal 2016-07-28 11:33:21 -07:00
parent 2c8d5b6b34
commit 83b0be7f1a
1 changed files with 2 additions and 1 deletions

View File

@ -702,12 +702,13 @@ func (n *network) driver(load bool) (driverapi.Driver, error) {
}
c := n.getController()
isAgent := c.isAgent()
n.Lock()
// If load is not required, driver, cap and err may all be nil
if cap != nil {
n.scope = cap.DataScope
}
if c.isAgent() || n.dynamic {
if isAgent || n.dynamic {
// If we are running in agent mode then all networks
// in libnetwork are local scope regardless of the
// backing driver.