diff --git a/pkg/local_object_storage/writecache/writecachebadger/mode.go b/pkg/local_object_storage/writecache/writecachebadger/mode.go index 9a39fa41a9..03d8618312 100644 --- a/pkg/local_object_storage/writecache/writecachebadger/mode.go +++ b/pkg/local_object_storage/writecache/writecachebadger/mode.go @@ -22,6 +22,9 @@ func (c *cache) SetMode(m mode.Mode) error { )) defer span.End() + c.modeMtx.Lock() + defer c.modeMtx.Unlock() + err := c.setMode(ctx, m) if err == nil { c.metrics.SetMode(m) diff --git a/pkg/local_object_storage/writecache/writecachebbolt/mode.go b/pkg/local_object_storage/writecache/writecachebbolt/mode.go index f7a9fffa38..b187996a11 100644 --- a/pkg/local_object_storage/writecache/writecachebbolt/mode.go +++ b/pkg/local_object_storage/writecache/writecachebbolt/mode.go @@ -22,6 +22,9 @@ func (c *cache) SetMode(m mode.Mode) error { )) defer span.End() + c.modeMtx.Lock() + defer c.modeMtx.Unlock() + err := c.setMode(ctx, m) if err == nil { c.metrics.SetMode(m)