11 type fileHandle struct {
15 var _ fs.HandleReader = fileHandle{}
17 func (me fileHandle) Read(ctx context.Context, req *fuse.ReadRequest, resp *fuse.ReadResponse) error {
18 torrentfsReadRequests.Add(1)
20 panic("read on directory")
23 fileLeft := int64(me.fn.size) - req.Offset
27 if fileLeft < int64(size) {
30 resp.Data = resp.Data[:size]
31 if len(resp.Data) == 0 {
34 torrentOff := me.fn.TorrentOffset + req.Offset
35 n, err := readFull(ctx, me.fn.FS, me.fn.t, torrentOff, resp.Data)
40 panic(fmt.Sprintf("%d < %d", n, size))