Browse Source

unmount

add-ec-vacuum
chrislu 4 months ago
parent
commit
47ea1ac228
  1. 11
      weed/storage/store_ec.go

11
weed/storage/store_ec.go

@ -87,7 +87,7 @@ func (s *Store) MountEcShards(collection string, vid needle.VolumeId, shardId er
func (s *Store) UnmountEcShards(vid needle.VolumeId, shardId erasure_coding.ShardId, generation uint32) error {
diskId, ecShard, found := s.findEcShard(vid, shardId)
diskId, ecShard, found := s.findEcShardWithGeneration(vid, shardId, generation)
if !found {
return nil
}
@ -122,6 +122,15 @@ func (s *Store) findEcShard(vid needle.VolumeId, shardId erasure_coding.ShardId)
return 0, nil, false
}
func (s *Store) findEcShardWithGeneration(vid needle.VolumeId, shardId erasure_coding.ShardId, generation uint32) (diskId uint32, shard *erasure_coding.EcVolumeShard, found bool) {
for diskId, location := range s.Locations {
if v, found := location.FindEcShardWithGeneration(vid, shardId, generation); found {
return uint32(diskId), v, found
}
}
return 0, nil, false
}
func (s *Store) FindEcVolume(vid needle.VolumeId) (*erasure_coding.EcVolume, bool) {
for _, location := range s.Locations {
if s, found := location.FindEcVolume(vid); found {

Loading…
Cancel
Save