aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--weed/mount/filehandle.go5
-rw-r--r--weed/mount/filehandle_read.go10
2 files changed, 6 insertions, 9 deletions
diff --git a/weed/mount/filehandle.go b/weed/mount/filehandle.go
index f0cf2a380..0dfcbd7f6 100644
--- a/weed/mount/filehandle.go
+++ b/weed/mount/filehandle.go
@@ -98,16 +98,15 @@ func (fh *FileHandle) AddChunks(chunks []*filer_pb.FileChunk) {
fh.entryViewCache = nil
}
-func (fh *FileHandle) SetReader(reader *filer.ChunkReadAt) {
+func (fh *FileHandle) CloseReader() {
if fh.reader != nil {
fh.reader.Close()
}
- fh.reader = reader
}
func (fh *FileHandle) Release() {
fh.dirtyPages.Destroy()
- fh.SetReader(nil)
+ fh.CloseReader()
}
func lessThan(a, b *filer_pb.FileChunk) bool {
diff --git a/weed/mount/filehandle_read.go b/weed/mount/filehandle_read.go
index 202730e88..45fc10a0b 100644
--- a/weed/mount/filehandle_read.go
+++ b/weed/mount/filehandle_read.go
@@ -62,21 +62,19 @@ func (fh *FileHandle) readFromChunks(buff []byte, offset int64) (int64, error) {
if chunkResolveErr != nil {
return 0, fmt.Errorf("fail to resolve chunk manifest: %v", chunkResolveErr)
}
- fh.SetReader(nil)
+ fh.CloseReader()
}
- reader := fh.reader
- if reader == nil {
+ if fh.reader == nil {
chunkViews := filer.ViewFromVisibleIntervals(fh.entryViewCache, 0, fileSize)
glog.V(4).Infof("file handle read %s [%d,%d) from %d views", fileFullPath, offset, offset+int64(len(buff)), len(chunkViews))
for _, chunkView := range chunkViews {
glog.V(4).Infof(" read %s [%d,%d) from chunk %+v", fileFullPath, chunkView.LogicOffset, chunkView.LogicOffset+int64(chunkView.Size), chunkView.FileId)
}
- reader = filer.NewChunkReaderAtFromClient(fh.wfs.LookupFn(), chunkViews, fh.wfs.chunkCache, fileSize)
+ fh.reader = filer.NewChunkReaderAtFromClient(fh.wfs.LookupFn(), chunkViews, fh.wfs.chunkCache, fileSize)
}
- fh.SetReader(reader)
- totalRead, err := reader.ReadAt(buff, offset)
+ totalRead, err := fh.reader.ReadAt(buff, offset)
if err != nil && err != io.EOF {
glog.Errorf("file handle read %s: %v", fileFullPath, err)