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.
geesefs-0-30-9
Aaron Jacobs 2015-08-05 01:07:40 +00:00
parent b5c1fd6ddc
commit 348ed9e731
2 changed files with 0 additions and 17 deletions

View File

@ -165,10 +165,6 @@ func (c *Connection) Init() (err error) {
// Tell the kernel not to use pitifully small 4 KiB writes. // Tell the kernel not to use pitifully small 4 KiB writes.
initOp.Flags |= fusekernel.InitBigWrites 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) c.Reply(ctx, nil)
return return
} }

View File

@ -19,7 +19,6 @@ import (
"os" "os"
"os/exec" "os/exec"
"path" "path"
"runtime"
"testing" "testing"
"time" "time"
@ -73,18 +72,6 @@ func (t *InterruptFSTest) StatFoo() {
} }
func (t *InterruptFSTest) InterruptedDuringRead() { 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 var err error
t.fs.EnableReadBlocking() t.fs.EnableReadBlocking()