aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--weed/server/volume_grpc_vacuum.go9
-rw-r--r--weed/storage/store_vacuum.go6
2 files changed, 5 insertions, 10 deletions
diff --git a/weed/server/volume_grpc_vacuum.go b/weed/server/volume_grpc_vacuum.go
index b87de4b5b..f8d1b7fda 100644
--- a/weed/server/volume_grpc_vacuum.go
+++ b/weed/server/volume_grpc_vacuum.go
@@ -44,19 +44,14 @@ func (vs *VolumeServer) VacuumVolumeCommit(ctx context.Context, req *volume_serv
resp := &volume_server_pb.VacuumVolumeCommitResponse{}
- err := vs.store.CommitCompactVolume(needle.VolumeId(req.VolumeId))
+ readOnly, err := vs.store.CommitCompactVolume(needle.VolumeId(req.VolumeId))
if err != nil {
glog.Errorf("commit volume %d: %v", req.VolumeId, err)
} else {
glog.V(1).Infof("commit volume %d", req.VolumeId)
}
- if err == nil {
- if vs.store.GetVolume(needle.VolumeId(req.VolumeId)).IsReadOnly() {
- resp.IsReadOnly = true
- }
- }
-
+ resp.IsReadOnly = readOnly
return resp, err
}
diff --git a/weed/storage/store_vacuum.go b/weed/storage/store_vacuum.go
index 32666a417..fe2033070 100644
--- a/weed/storage/store_vacuum.go
+++ b/weed/storage/store_vacuum.go
@@ -25,11 +25,11 @@ func (s *Store) CompactVolume(vid needle.VolumeId, preallocate int64, compaction
}
return fmt.Errorf("volume id %d is not found during compact", vid)
}
-func (s *Store) CommitCompactVolume(vid needle.VolumeId) error {
+func (s *Store) CommitCompactVolume(vid needle.VolumeId) (bool, error) {
if v := s.findVolume(vid); v != nil {
- return v.CommitCompact()
+ return v.IsReadOnly(), v.CommitCompact()
}
- return fmt.Errorf("volume id %d is not found during commit compact", vid)
+ return false, fmt.Errorf("volume id %d is not found during commit compact", vid)
}
func (s *Store) CommitCleanupVolume(vid needle.VolumeId) error {
if v := s.findVolume(vid); v != nil {