diff options
| author | hilimd <68371223+hilimd@users.noreply.github.com> | 2020-10-18 09:44:04 +0800 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2020-10-18 09:44:04 +0800 |
| commit | 62af2d961d62f01510d0ad25569f4b82e4809996 (patch) | |
| tree | 109e26db37bb2365973c70983833da7305b69f34 /weed/filesys/filehandle.go | |
| parent | 5c2e409ffe0e9517e597ebf89e9eb3ba55883f28 (diff) | |
| parent | c0ab458671f2859990caab70b59041513d90edac (diff) | |
| download | seaweedfs-62af2d961d62f01510d0ad25569f4b82e4809996.tar.xz seaweedfs-62af2d961d62f01510d0ad25569f4b82e4809996.zip | |
Merge pull request #28 from chrislusf/master
sync
Diffstat (limited to 'weed/filesys/filehandle.go')
| -rw-r--r-- | weed/filesys/filehandle.go | 18 |
1 files changed, 12 insertions, 6 deletions
diff --git a/weed/filesys/filehandle.go b/weed/filesys/filehandle.go index 43991376b..45abfcc5c 100644 --- a/weed/filesys/filehandle.go +++ b/weed/filesys/filehandle.go @@ -77,6 +77,10 @@ func (fh *FileHandle) Read(ctx context.Context, req *fuse.ReadRequest, resp *fus totalRead = max(maxStop-req.Offset, totalRead) } + if err == io.EOF { + err = nil + } + if err != nil { glog.Warningf("file handle read %s %d: %v", fh.f.fullpath(), totalRead, err) return fuse.EIO @@ -122,11 +126,7 @@ func (fh *FileHandle) readFromChunks(buff []byte, offset int64) (int64, error) { totalRead, err := fh.f.reader.ReadAt(buff, offset) - if err == io.EOF { - err = nil - } - - if err != nil { + if err != nil && err != io.EOF{ glog.Errorf("file handle read %s: %v", fh.f.fullpath(), err) } @@ -179,10 +179,16 @@ func (fh *FileHandle) Release(ctx context.Context, req *fuse.ReleaseRequest) err } if fh.f.isOpen == 0 { - fh.doFlush(ctx, req.Header) + if err := fh.doFlush(ctx, req.Header); err != nil { + glog.Errorf("Release doFlush %s: %v", fh.f.Name, err) + } fh.f.wfs.ReleaseHandle(fh.f.fullpath(), fuse.HandleID(fh.handle)) } + // stop the goroutine + fh.dirtyPages.chunkSaveErrChanClosed = true + close(fh.dirtyPages.chunkSaveErrChan) + return nil } |
