]> Sergey Matveev's repositories - btrtrc.git/commitdiff
piece resource storage: Do sized puts for WriteAts if possible
authorMatt Joiner <anacrolix@gmail.com>
Wed, 28 Apr 2021 11:18:01 +0000 (21:18 +1000)
committerMatt Joiner <anacrolix@gmail.com>
Tue, 4 May 2021 02:44:51 +0000 (12:44 +1000)
storage/piece_resource.go

index 66d877fbe6c97d4c37dd7a0538e0999eb6ebec83..8df443896668e15459cb09a041cbcc89aed3f0e5 100644 (file)
@@ -191,7 +191,11 @@ func (s piecePerResourcePiece) WriteAt(b []byte, off int64) (n int, err error) {
                panic(err)
        }
        r := bytes.NewReader(b)
-       err = i.Put(r)
+       if sp, ok := i.(SizedPutter); ok {
+               err = sp.PutSized(r, r.Size())
+       } else {
+               err = i.Put(r)
+       }
        n = len(b) - r.Len()
        return
 }