Commit 348ed9e7 authored by Aaron Jacobs's avatar Aaron Jacobs

Disabled async reads.

Allowing the kernel to send multiple reads for the same file handle
concurrently interferes with sequential read detection like that in
GoogleCloudPlatform/gcsfuse#103.
parent b5c1fd6d
......@@ -165,10 +165,6 @@ func (c *Connection) Init() (err error) {
// Tell the kernel not to use pitifully small 4 KiB writes.
initOp.Flags |= fusekernel.InitBigWrites
// Tell the kernel it is free to send further requests while a read request
// is in flight.
initOp.Flags |= fusekernel.InitAsyncRead
c.Reply(ctx, nil)
return
}
......
......@@ -19,7 +19,6 @@ import (
"os"
"os/exec"
"path"
"runtime"
"testing"
"time"
......@@ -73,18 +72,6 @@ func (t *InterruptFSTest) StatFoo() {
}
func (t *InterruptFSTest) InterruptedDuringRead() {
// On Linux, since we have async reads enabled, the kernel sends the read and
// the flush ops in parallel. When the process receives SIGINT, the interrupt
// is delivered only for the flush, probably because that's what the process
// appears to be blocking on. So this test doesn't work.
//
// Note that this means that cancellation is not delivered for reads on
// Linux. This is unfortunate, but probably worth it due to the significant
// increase in performance.
if runtime.GOOS == "linux" {
return
}
var err error
t.fs.EnableReadBlocking()
......
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