Commit 0fd7de49 authored by Ian Lance Taylor's avatar Ian Lance Taylor

os: fix handling of ErrShortWrite in (*File).Write

Restore the handling of io.ErrShortWrite in (*File).Write:
if we write less than the requested amount, and there is no error from
the syscall, then return io.ErrShortWrite.

I can't figure out how to write a test for this. It would require a
non-pollable file (not a pipe) on a device that is almost but not
quite entirely full. The original code (https://golang.org/cl/36800043,
committed as part of https://golang.org/cl/36930044) does not have a test.

Fixes #20386.

Change-Id: Ied7b411e621e1eaf49f864f8db90069f276256f5
Reviewed-on: https://go-review.googlesource.com/43558
Run-TryBot: Ian Lance Taylor <iant@golang.org>
Reviewed-by: default avatarBrad Fitzpatrick <bradfitz@golang.org>
TryBot-Result: Gobot Gobot <gobot@golang.org>
parent 13cdd814
...@@ -147,7 +147,11 @@ func (f *File) Write(b []byte) (n int, err error) { ...@@ -147,7 +147,11 @@ func (f *File) Write(b []byte) (n int, err error) {
epipecheck(f, e) epipecheck(f, e)
return n, f.wrapErr("write", e) if e != nil {
err = f.wrapErr("write", e)
}
return n, err
} }
// WriteAt writes len(b) bytes to the File starting at byte offset off. // WriteAt writes len(b) bytes to the File starting at byte offset off.
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment