diff options
| author | Bruce <half-life@jibudata.com> | 2024-09-05 22:58:24 +0800 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2024-09-05 07:58:24 -0700 |
| commit | f9e141a4126c3e243edb46b84bc3649a7e790bc8 (patch) | |
| tree | c093eb3d7a5b016cad90e44e3f116d78ae09a386 /weed/storage/volume.go | |
| parent | 310d41998d0292654f8d05e02fea2a5fd90d8bc3 (diff) | |
| download | seaweedfs-f9e141a4126c3e243edb46b84bc3649a7e790bc8.tar.xz seaweedfs-f9e141a4126c3e243edb46b84bc3649a7e790bc8.zip | |
persist readonly state to volume info (#5977)
Diffstat (limited to 'weed/storage/volume.go')
| -rw-r--r-- | weed/storage/volume.go | 12 |
1 files changed, 10 insertions, 2 deletions
diff --git a/weed/storage/volume.go b/weed/storage/volume.go index 94d1f9a4e..e55564652 100644 --- a/weed/storage/volume.go +++ b/weed/storage/volume.go @@ -48,8 +48,9 @@ type Volume struct { isCompacting bool isCommitCompacting bool - volumeInfo *volume_server_pb.VolumeInfo - location *DiskLocation + volumeInfoRWLock sync.RWMutex + volumeInfo *volume_server_pb.VolumeInfo + location *DiskLocation lastIoError error } @@ -358,3 +359,10 @@ func (v *Volume) IsReadOnly() bool { defer v.noWriteLock.RUnlock() return v.noWriteOrDelete || v.noWriteCanDelete || v.location.isDiskSpaceLow } + +func (v *Volume) PersistReadOnly(readOnly bool) { + v.volumeInfoRWLock.RLock() + defer v.volumeInfoRWLock.RUnlock() + v.volumeInfo.ReadOnly = readOnly + v.SaveVolumeInfo() +} |
