Enable async reads.

As best I can tell, this instructs the kernel not to synchronize on the
completion of a read request before sending further requests. This
definitely means further read requests, but I believe it means any sort
of request as well. It appears to make a big difference to gcsfuse read
support.
geesefs-0-30-9
Aaron Jacobs 2015-07-29 14:05:22 +10:00
parent 0114453672
commit 3f954b3056
1 changed files with 7 additions and 1 deletions

View File

@ -158,7 +158,13 @@ func (c *Connection) Init() (err error) {
initOp.Library = c.protocol
initOp.MaxReadahead = maxReadahead
initOp.MaxWrite = buffer.MaxWriteSize
initOp.Flags = fusekernel.InitBigWrites
// 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