aboutsummaryrefslogtreecommitdiff
path: root/go/storage/volume.go
diff options
context:
space:
mode:
authorChris Lu <chris.lu@gmail.com>2013-08-12 23:48:10 -0700
committerChris Lu <chris.lu@gmail.com>2013-08-12 23:48:10 -0700
commit078118ecba543ffa9d2bd8f3f8a395c6e7a4eb90 (patch)
tree5731f052169077391e0cd10498c0c93817c852f0 /go/storage/volume.go
parent11b4e0c77d5dfc6e71f2dc5fa1770fa703d1ff78 (diff)
downloadseaweedfs-078118ecba543ffa9d2bd8f3f8a395c6e7a4eb90.tar.xz
seaweedfs-078118ecba543ffa9d2bd8f3f8a395c6e7a4eb90.zip
v0.40
Diffstat (limited to 'go/storage/volume.go')
-rw-r--r--go/storage/volume.go6
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) {