storage/wrappers.go | 15 +++++++++------ diff --git a/storage/wrappers.go b/storage/wrappers.go index 044a1f5aa53fd62de03e4cdeed76e14d1f4189f6..4fc0e10d6208445ac2be8332964e9ee57381ca1b 100644 --- a/storage/wrappers.go +++ b/storage/wrappers.go @@ -1,7 +1,6 @@ package storage import ( - "errors" "io" "os" @@ -37,11 +36,15 @@ mip metainfo.Piece } func (p Piece) WriteAt(b []byte, off int64) (n int, err error) { - c := p.Completion() - if c.Ok && c.Complete { - err = errors.New("piece already completed") - return - } + // Callers should not be writing to completed pieces, but it's too + // expensive to be checking this on every single write using uncached + // completions. + + // c := p.Completion() + // if c.Ok && c.Complete { + // err = errors.New("piece already completed") + // return + // } if off+int64(len(b)) > p.mip.Length() { panic("write overflows piece") }