diff --git a/weed/topology/volume_layout.go b/weed/topology/volume_layout.go index f2c341b7c..5711a6a9b 100644 --- a/weed/topology/volume_layout.go +++ b/weed/topology/volume_layout.go @@ -106,7 +106,7 @@ func (v *volumesBinaryState) copyState(list *VolumeLocationList) copyState { // mapping from volume to its locations, inverted from server to volume type VolumeLayout struct { - growRequestCount int32 + growRequest atomic.Bool rp *super_block.ReplicaPlacement ttl *needle.TTL diskType types.DiskType @@ -345,13 +345,13 @@ func (vl *VolumeLayout) PickForWrite(count uint64, option *VolumeGrowOption) (vi } func (vl *VolumeLayout) HasGrowRequest() bool { - return atomic.LoadInt32(&vl.growRequestCount) > 0 + return vl.growRequest.Load() } func (vl *VolumeLayout) AddGrowRequest() { - atomic.AddInt32(&vl.growRequestCount, 1) + vl.growRequest.Store(true) } func (vl *VolumeLayout) DoneGrowRequest() { - atomic.AddInt32(&vl.growRequestCount, -1) + vl.growRequest.Store(false) } func (vl *VolumeLayout) ShouldGrowVolumes(option *VolumeGrowOption) bool {