diff options
Diffstat (limited to 'weed/topology/disk_ec.go')
| -rw-r--r-- | weed/topology/disk_ec.go | 19 |
1 files changed, 11 insertions, 8 deletions
diff --git a/weed/topology/disk_ec.go b/weed/topology/disk_ec.go index 4f950025f..1fea29272 100644 --- a/weed/topology/disk_ec.go +++ b/weed/topology/disk_ec.go @@ -29,10 +29,12 @@ func (d *Disk) AddOrUpdateEcShard(s *erasure_coding.EcVolumeInfo) { delta = existing.ShardBits.ShardIdCount() - oldCount } - deltaDiskUsages := newDiskUsages() - deltaDiskUsage := deltaDiskUsages.getOrCreateDisk(types.ToDiskType(string(d.Id()))) - deltaDiskUsage.ecShardCount = int64(delta) - d.UpAdjustDiskUsageDelta(deltaDiskUsages) + if delta == 0 { + return + } + d.UpAdjustDiskUsageDelta(types.ToDiskType(string(d.Id())), &DiskUsageCounts{ + ecShardCount: int64(delta), + }) } @@ -45,10 +47,11 @@ func (d *Disk) DeleteEcShard(s *erasure_coding.EcVolumeInfo) { existing.ShardBits = existing.ShardBits.Minus(s.ShardBits) delta := existing.ShardBits.ShardIdCount() - oldCount - deltaDiskUsages := newDiskUsages() - deltaDiskUsage := deltaDiskUsages.getOrCreateDisk(types.ToDiskType(string(d.Id()))) - deltaDiskUsage.ecShardCount = int64(delta) - d.UpAdjustDiskUsageDelta(deltaDiskUsages) + if delta != 0 { + d.UpAdjustDiskUsageDelta(types.ToDiskType(string(d.Id())), &DiskUsageCounts{ + ecShardCount: int64(delta), + }) + } if existing.ShardBits.ShardIdCount() == 0 { delete(d.ecShards, s.VolumeId) |
