g "github.com/anacrolix/generics"
"github.com/anacrolix/missinggo/v2/panicif"
- "golang.org/x/sys/unix"
-
"github.com/anacrolix/torrent/metainfo"
"github.com/anacrolix/torrent/segments"
)
panicif.GreaterThan(extent.End(), file.FileInfo.Length)
extentRemaining := extent.Length
var dataOffset int64
- dataOffset, err = unix.Seek(int(f.Fd()), extent.Start, unix.SEEK_DATA)
- if err == unix.ENXIO {
- // File has no more data. Treat as short write like io.CopyN.
- err = io.EOF
+ dataOffset, err = seekData(f, extent.Start)
+ if err == io.EOF {
return
}
panicif.Err(err)
--- /dev/null
+//go:build unix
+
+package storage
+
+import (
+ "io"
+ "os"
+
+ "golang.org/x/sys/unix"
+)
+
+func seekData(f *os.File, offset int64) (ret int64, err error) {
+ ret, err = unix.Seek(int(f.Fd()), offset, unix.SEEK_DATA)
+ if err == unix.ENXIO {
+ // File has no more data. Treat as short write like io.CopyN.
+ err = io.EOF
+ }
+ return
+}
--- /dev/null
+package storage
+
+import (
+ "io"
+ "os"
+)
+
+func seekData(f *os.File, offset int64) (ret int64, err error) {
+ return f.Seek(offset, io.SeekStart)
+}