From 695ca11db62cbb8adce619a396d0c1bace0d9e1b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Miloslav=20Trma=C4=8D?= Date: Fri, 14 Oct 2022 01:55:41 +0200 Subject: [PATCH] Only lock the primary layer store for reading in CreateImage MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit There seems to be no reason to lock for writing. Signed-off-by: Miloslav Trmač --- store.go | 14 +++----------- 1 file changed, 3 insertions(+), 11 deletions(-) diff --git a/store.go b/store.go index 684bb41eef..f3929d2256 100644 --- a/store.go +++ b/store.go @@ -1199,22 +1199,14 @@ func (s *store) CreateLayer(id, parent string, names []string, mountLabel string func (s *store) CreateImage(id string, names []string, layer, metadata string, options *ImageOptions) (*Image, error) { if layer != "" { - lstore, err := s.getLayerStore() - if err != nil { - return nil, err - } - lstores, err := s.getROLayerStores() + layerStores, err := s.allLayerStores() if err != nil { return nil, err } var ilayer *Layer - for _, s := range append([]roLayerStore{lstore}, lstores...) { + for _, s := range layerStores { store := s - if store == lstore { - store.Lock() - } else { - store.RLock() - } + store.RLock() defer store.Unlock() err := store.ReloadIfChanged() if err != nil {