diff --git a/store.go b/store.go index 5e16b9e375..8d6f2c4d77 100644 --- a/store.go +++ b/store.go @@ -3054,10 +3054,15 @@ func (s *store) Layers() ([]Layer, error) { if err != nil { return nil, err } - if err := lstore.LoadLocked(); err != nil { - return nil, err - } - layers, err := lstore.Layers() + + layers, err := func() ([]Layer, error) { + lstore.Lock() + defer lstore.Unlock() + if err := lstore.Load(); err != nil { + return nil, err + } + return lstore.Layers() + }() if err != nil { return nil, err }