diff --git a/pkg/local_object_storage/writecache/writecachebadger/mode.go b/pkg/local_object_storage/writecache/writecachebadger/mode.go index 9a39fa41a..03d861831 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 f7a9fffa3..b187996a1 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)