os: cut limited read to 1 GB

If systems actually read that much, using 2GB-1 will
result in misaligned subsequent reads. Use 1GB instead,
which will certainly keep reads aligned and which is
plenty large enough.

Update #7812.

LGTM=bradfitz
R=bradfitz
CC=golang-codereviews
https://golang.org/cl/94070044
This commit is contained in:
Russ Cox 2014-05-02 12:12:40 -04:00
parent 3b3e1a09a9
commit 3879f0abcd

View file

@ -174,9 +174,11 @@ func (f *File) readdir(n int) (fi []FileInfo, err error) {
// Darwin and FreeBSD can't read or write 2GB+ at a time,
// even on 64-bit systems. See golang.org/issue/7812.
// Use 1GB instead of, say, 2GB-1, to keep subsequent
// reads aligned.
const (
needsMaxRW = runtime.GOOS == "darwin" || runtime.GOOS == "freebsd"
maxRW = 2<<30 - 1
maxRW = 1 << 30
)
// read reads up to len(b) bytes from the File.