diff --git a/weed/storage/disk_location.go b/weed/storage/disk_location.go index 33dd272ce..f16963356 100644 --- a/weed/storage/disk_location.go +++ b/weed/storage/disk_location.go @@ -247,13 +247,15 @@ func (l *DiskLocation) LoadVolume(vid needle.VolumeId, needleMapKind NeedleMapKi return false } +var ErrVolumeNotFound = fmt.Errorf("volume not found") + func (l *DiskLocation) DeleteVolume(vid needle.VolumeId) error { l.volumesLock.Lock() defer l.volumesLock.Unlock() _, ok := l.volumes[vid] if !ok { - return fmt.Errorf("Volume not found, VolumeId: %d", vid) + return ErrVolumeNotFound } _, err := l.deleteVolumeById(vid) return err @@ -265,7 +267,7 @@ func (l *DiskLocation) UnloadVolume(vid needle.VolumeId) error { v, ok := l.volumes[vid] if !ok { - return fmt.Errorf("Volume not loaded, VolumeId: %d", vid) + return ErrVolumeNotFound } v.Close() delete(l.volumes, vid) diff --git a/weed/storage/store.go b/weed/storage/store.go index 044c31050..b5f8f9c4b 100644 --- a/weed/storage/store.go +++ b/weed/storage/store.go @@ -428,7 +428,7 @@ func (s *Store) UnmountVolume(i needle.VolumeId) error { } for _, location := range s.Locations { - if err := location.UnloadVolume(i); err == nil { + if err := location.UnloadVolume(i); err == nil || err == ErrVolumeNotFound { glog.V(0).Infof("UnmountVolume %d", i) s.DeletedVolumesChan <- message return nil @@ -452,7 +452,7 @@ func (s *Store) DeleteVolume(i needle.VolumeId) error { DiskType: string(v.location.DiskType), } for _, location := range s.Locations { - if err := location.DeleteVolume(i); err == nil { + if err := location.DeleteVolume(i); err == nil || err == ErrVolumeNotFound { glog.V(0).Infof("DeleteVolume %d", i) s.DeletedVolumesChan <- message return nil