]> Sergey Matveev's repositories - btrtrc.git/blobdiff - fs/file_handle.go
Drop support for go 1.20
[btrtrc.git] / fs / file_handle.go
index 7edd1ea3522f89e999fcd94ed4f932c9a346fc93..ce5ded0b488205f54251e8631fbb72b0a6c9f1e2 100644 (file)
@@ -13,7 +13,7 @@ import (
 
 type fileHandle struct {
        fn fileNode
-       r  torrent.Reader
+       tf *torrent.File
 }
 
 var _ interface {
@@ -26,7 +26,8 @@ func (me fileHandle) Read(ctx context.Context, req *fuse.ReadRequest, resp *fuse
        if req.Dir {
                panic("read on directory")
        }
-       r := me.r
+       r := me.tf.NewReader()
+       defer r.Close()
        pos, err := r.Seek(req.Offset, io.SeekStart)
        if err != nil {
                panic(err)
@@ -55,7 +56,7 @@ func (me fileHandle) Read(ctx context.Context, req *fuse.ReadRequest, resp *fuse
                        n, readErr = io.ReadFull(r, resp.Data)
                        if readErr == io.ErrUnexpectedEOF {
                                readErr = nil
-                      }
+                       }
                } else {
                        n, readErr = r.Read(resp.Data)
                        if readErr == io.EOF {
@@ -84,5 +85,5 @@ func (me fileHandle) Read(ctx context.Context, req *fuse.ReadRequest, resp *fuse
 }
 
 func (me fileHandle) Release(context.Context, *fuse.ReleaseRequest) error {
-       return me.r.Close()
+       return nil
 }