return
}
// Ensure the file is writable
- err = os.Chmod(f.safeOsPath, info.Mode().Perm()|(filePerm&0o222))
+ err = os.Chmod(me.pathForWrite(f), info.Mode().Perm()|(filePerm&0o222))
if err != nil {
err = fmt.Errorf("setting file writable: %w", err)
return
// to return if the data has been lost.
if off < p.mip.Length() {
if err == io.EOF {
+ // TODO: Hey, this guy over here isn't checking errors.
p.MarkNotComplete()
}
}
}
}
}
+
+ // This pattern is copied from MarkComplete above. Note the pattern.
+ t.cl.unlock()
+ p.race++
+ err := p.Storage().MarkNotComplete()
+ if err != nil {
+ t.slogger().Error("error marking piece not complete", "piece", piece, "err", err)
+ }
+ t.cl.lock()
+ if t.closed.IsSet() {
+ return
+ }
+
t.onIncompletePiece(piece)
- p.Storage().MarkNotComplete()
}
t.updatePieceCompletion(piece)
}