aboutsummaryrefslogtreecommitdiff
path: root/go
diff options
context:
space:
mode:
Diffstat (limited to 'go')
-rw-r--r--go/storage/store.go15
1 files changed, 10 insertions, 5 deletions
diff --git a/go/storage/store.go b/go/storage/store.go
index ccb6a89fb..91f3be943 100644
--- a/go/storage/store.go
+++ b/go/storage/store.go
@@ -174,16 +174,21 @@ func (s *Store) Close() {
}
func (s *Store) Write(i VolumeId, n *Needle) (size uint32, err error) {
if v := s.volumes[i]; v != nil && !v.readOnly {
- size, err = v.write(n)
- if err != nil && s.volumeSizeLimit < v.ContentSize()+uint64(size) && s.volumeSizeLimit >= v.ContentSize() {
- log.Println("volume", i, "size is", v.ContentSize(), "close to", s.volumeSizeLimit)
- if err = s.Join(); err != nil {
- log.Printf("error with Join: %s", err)
+ if v.readOnly {
+ err = errors.New("Volume " + i + " is read only!")
+ } else {
+ size, err = v.write(n)
+ if err != nil && s.volumeSizeLimit < v.ContentSize()+uint64(size) && s.volumeSizeLimit >= v.ContentSize() {
+ log.Println("volume", i, "size is", v.ContentSize(), "close to", s.volumeSizeLimit)
+ if err = s.Join(); err != nil {
+ log.Printf("error with Join: %s", err)
+ }
}
}
return
}
log.Println("volume", i, "not found!")
+ err = errors.New("Volume " + i + " not found!")
return
}
func (s *Store) Delete(i VolumeId, n *Needle) (uint32, error) {