fix for spreading ec shards

This commit is contained in:
chrislu
2024-09-03 22:30:11 -07:00
parent 8e4bffc66b
commit 8d5a6d7e74

View File

@@ -143,10 +143,17 @@ func (vs *VolumeServer) VolumeEcShardsCopy(ctx context.Context, req *volume_serv
glog.V(0).Infof("VolumeEcShardsCopy: %v", req) glog.V(0).Infof("VolumeEcShardsCopy: %v", req)
location := vs.store.FindFreeLocation(func(location *storage.DiskLocation) bool { var location *storage.DiskLocation
if req.CopyEcxFile {
location = vs.store.FindFreeLocation(func(location *storage.DiskLocation) bool {
return location.DiskType == types.HardDriveType
})
} else {
location = vs.store.FindFreeLocation(func(location *storage.DiskLocation) bool {
_, found := location.FindEcVolume(needle.VolumeId(req.VolumeId)) _, found := location.FindEcVolume(needle.VolumeId(req.VolumeId))
return found return found
}) })
}
if location == nil { if location == nil {
return nil, fmt.Errorf("no space left") return nil, fmt.Errorf("no space left")
} }