aboutsummaryrefslogtreecommitdiff
path: root/weed/topology/disk_ec.go
diff options
context:
space:
mode:
Diffstat (limited to 'weed/topology/disk_ec.go')
-rw-r--r--weed/topology/disk_ec.go19
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)