diff options
| author | chrislu <chris.lu@gmail.com> | 2022-07-08 01:04:15 -0700 |
|---|---|---|
| committer | chrislu <chris.lu@gmail.com> | 2022-07-08 01:04:15 -0700 |
| commit | e2ecf137a21b27c34c3b163f09f3660745daceeb (patch) | |
| tree | f95152be198d8c57073f0ef7aa4ec1cb24a2b4c2 /weed/mount/filehandle_read.go | |
| parent | 185332b91f5c3dd8f32dd8573eec843dda9c29c2 (diff) | |
| download | seaweedfs-e2ecf137a21b27c34c3b163f09f3660745daceeb.tar.xz seaweedfs-e2ecf137a21b27c34c3b163f09f3660745daceeb.zip | |
fix resetting fh.reader
Diffstat (limited to 'weed/mount/filehandle_read.go')
| -rw-r--r-- | weed/mount/filehandle_read.go | 10 |
1 files changed, 4 insertions, 6 deletions
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) |
