Skip to content

Commit

Permalink
Disabled async reads.
Browse files Browse the repository at this point in the history
Allowing the kernel to send multiple reads for the same file handle
concurrently interferes with sequential read detection like that in
GoogleCloudPlatform/gcsfuse#103.
  • Loading branch information
jacobsa committed Aug 5, 2015
1 parent b5c1fd6 commit 348ed9e
Show file tree
Hide file tree
Showing 2 changed files with 0 additions and 17 deletions.
4 changes: 0 additions & 4 deletions connection.go
Original file line number Diff line number Diff line change
Expand Up @@ -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
}
Expand Down
13 changes: 0 additions & 13 deletions samples/interruptfs/interrupt_fs_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,6 @@ import (
"os"
"os/exec"
"path"
"runtime"
"testing"
"time"

Expand Down Expand Up @@ -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()

Expand Down

0 comments on commit 348ed9e

Please sign in to comment.