Skip to content

Commit 6caf902

Browse files
author
Santhosh Manohar
authored
Merge pull request #1461 from mrjana/overlay
Serialize overlay filter plumbing
2 parents 98dda7e + 80690d7 commit 6caf902

1 file changed

Lines changed: 15 additions & 0 deletions

File tree

drivers/overlay/filter.go

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,13 @@ const globalChain = "DOCKER-OVERLAY"
1212

1313
var filterOnce sync.Once
1414

15+
var filterChan = make(chan struct{}, 1)
16+
17+
func filterWait() func() {
18+
filterChan <- struct{}{}
19+
return func() { <-filterChan }
20+
}
21+
1522
func chainExists(cname string) bool {
1623
if _, err := iptables.Raw("-L", cname); err != nil {
1724
return false
@@ -69,10 +76,14 @@ func setNetworkChain(cname string, remove bool) error {
6976
}
7077

7178
func addNetworkChain(cname string) error {
79+
defer filterWait()()
80+
7281
return setNetworkChain(cname, false)
7382
}
7483

7584
func removeNetworkChain(cname string) error {
85+
defer filterWait()()
86+
7687
return setNetworkChain(cname, true)
7788
}
7889

@@ -119,9 +130,13 @@ func setFilters(cname, brName string, remove bool) error {
119130
}
120131

121132
func addFilters(cname, brName string) error {
133+
defer filterWait()()
134+
122135
return setFilters(cname, brName, false)
123136
}
124137

125138
func removeFilters(cname, brName string) error {
139+
defer filterWait()()
140+
126141
return setFilters(cname, brName, true)
127142
}

0 commit comments

Comments
 (0)