diff options
| author | Konstantin Lebedev <9497591+kmlebedev@users.noreply.github.com> | 2023-06-12 22:42:44 +0500 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2023-06-12 10:42:44 -0700 |
| commit | 25535e9c36ad55b4e75f88ed01ca0c5e3947663e (patch) | |
| tree | 8e6e71e734468822cabc2bbf979d7d6cff67f68f /weed/storage | |
| parent | 2e42cdeb221572a20b0d6576dc8e2f6f3369b546 (diff) | |
| download | seaweedfs-25535e9c36ad55b4e75f88ed01ca0c5e3947663e.tar.xz seaweedfs-25535e9c36ad55b4e75f88ed01ca0c5e3947663e.zip | |
Delete volume is empty (#4561)
* use onlyEmpty for deleteVolume
https://github.com/seaweedfs/seaweedfs/issues/4559
* fix IsEmpty
* fix test
---------
Co-authored-by: Konstantin Lebedev <9497591+kmlebedev@users.noreply.github.co>
Diffstat (limited to 'weed/storage')
| -rw-r--r-- | weed/storage/store.go | 5 | ||||
| -rw-r--r-- | weed/storage/volume.go | 3 |
2 files changed, 7 insertions, 1 deletions
diff --git a/weed/storage/store.go b/weed/storage/store.go index 40bb7bbe7..cfc409c39 100644 --- a/weed/storage/store.go +++ b/weed/storage/store.go @@ -507,8 +507,11 @@ func (s *Store) UnmountVolume(i needle.VolumeId) error { return fmt.Errorf("volume %d not found on disk", i) } -func (s *Store) DeleteVolume(i needle.VolumeId) error { +func (s *Store) DeleteVolume(i needle.VolumeId, onlyEmpty bool) error { v := s.findVolume(i) + if onlyEmpty && !v.IsEmpty() { + return fmt.Errorf("delete volume %d not empty", i) + } if v == nil { return fmt.Errorf("delete volume %d not found on disk", i) } diff --git a/weed/storage/volume.go b/weed/storage/volume.go index b4cd7b560..31960451c 100644 --- a/weed/storage/volume.go +++ b/weed/storage/volume.go @@ -332,3 +332,6 @@ func (v *Volume) IsReadOnly() bool { defer v.noWriteLock.RUnlock() return v.noWriteOrDelete || v.noWriteCanDelete || v.location.isDiskSpaceLow } +func (v *Volume) IsEmpty() bool { + return v.ContentSize() == 0 +} |
