diff --git a/swarm/storage/localstore/gc.go b/swarm/storage/localstore/gc.go index cc7122c38a..a228c8493f 100644 --- a/swarm/storage/localstore/gc.go +++ b/swarm/storage/localstore/gc.go @@ -78,13 +78,15 @@ func (db *DB) collectGarbage() (collectedCount int64, done bool, err error) { batch := new(leveldb.Batch) target := db.gcTarget() + if db.useGlobalLock { + db.globalMu.Lock() + defer db.globalMu.Unlock() + } + done = true err = db.gcIndex.Iterate(func(item shed.Item) (stop bool, err error) { // protect parallel updates - if db.useGlobalLock { - db.globalMu.Lock() - defer db.globalMu.Unlock() - } else { + if !db.useGlobalLock { unlock, err := db.lockAddr(item.Address) if err != nil { return false, err