diff options
| author | Chris Lu <chris.lu@gmail.com> | 2013-08-12 23:48:10 -0700 |
|---|---|---|
| committer | Chris Lu <chris.lu@gmail.com> | 2013-08-12 23:48:10 -0700 |
| commit | 078118ecba543ffa9d2bd8f3f8a395c6e7a4eb90 (patch) | |
| tree | 5731f052169077391e0cd10498c0c93817c852f0 /go/storage/volume.go | |
| parent | 11b4e0c77d5dfc6e71f2dc5fa1770fa703d1ff78 (diff) | |
| download | seaweedfs-078118ecba543ffa9d2bd8f3f8a395c6e7a4eb90.tar.xz seaweedfs-078118ecba543ffa9d2bd8f3f8a395c6e7a4eb90.zip | |
v0.40
Diffstat (limited to 'go/storage/volume.go')
| -rw-r--r-- | go/storage/volume.go | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/go/storage/volume.go b/go/storage/volume.go index b2c8a2337..6097aeec5 100644 --- a/go/storage/volume.go +++ b/go/storage/volume.go @@ -57,12 +57,14 @@ func (v *Volume) load(alsoLoadIndex bool) error { fileName := path.Join(v.dir, v.Id.String()) if exists, canRead, canWrite, _ := checkFile(fileName + ".dat"); exists && !canRead { return fmt.Errorf("cannot read Volume Data file %s.dat", fileName) - } else if canWrite { + } else if !exists || canWrite { v.dataFile, e = os.OpenFile(fileName+".dat", os.O_RDWR|os.O_CREATE, 0644) - } else { + } else if exists && canRead { glog.V(0).Infoln("opening " + fileName + ".dat in READONLY mode") v.dataFile, e = os.Open(fileName + ".dat") v.readOnly = true + } else { + return fmt.Errorf("Unknown state about Volume Data file %s.dat", fileName) } if e != nil { if !os.IsPermission(e) { |
