src/pkg/os/file.go | 4 ++-- diff --git a/src/pkg/os/file.go b/src/pkg/os/file.go index 03c6d57018cecc092892d4a7e91c6c7aac9bd8c3..459b78cc22530bd852f34accc22ae4e1c969b701 100644 --- a/src/pkg/os/file.go +++ b/src/pkg/os/file.go @@ -141,11 +141,11 @@ m, e := syscall.Pread(file.fd, b, off); if m == 0 && e == 0 { return n, EOF } - n += m; if e != 0 { err = &PathError{"read", file.name, Errno(e)}; break; } + n += m; b = b[m:]; off += int64(m); } @@ -186,11 +186,11 @@ return 0, EINVAL } for len(b) > 0 { m, e := syscall.Pwrite(file.fd, b, off); - n += m; if e != 0 { err = &PathError{"write", file.name, Errno(e)}; break; } + n += m; b = b[m:]; off += int64(m); }