]> Cypherpunks repositories - gostls13.git/commitdiff
os: cut limited read to 1 GB
authorRuss Cox <rsc@golang.org>
Fri, 2 May 2014 16:12:40 +0000 (12:12 -0400)
committerRuss Cox <rsc@golang.org>
Fri, 2 May 2014 16:12:40 +0000 (12:12 -0400)
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

src/pkg/os/file_unix.go

index bc478b1cc5d4279ea76473346a7356624da4cf4e..76168339d23da597737654cf5809c73314c3cd12 100644 (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.