Fixed maxReadahead.
parent
2860526871
commit
91664cfc31
|
@ -32,6 +32,25 @@ import (
|
|||
"github.com/jacobsa/fuse/internal/fuseshim"
|
||||
)
|
||||
|
||||
// Ask the Linux kernel for larger read requests.
|
||||
//
|
||||
// As of 2015-03-26, the behavior in the kernel is:
|
||||
//
|
||||
// * (http://goo.gl/bQ1f1i, http://goo.gl/HwBrR6) Set the local variable
|
||||
// ra_pages to be init_response->max_readahead divided by the page size.
|
||||
//
|
||||
// * (http://goo.gl/gcIsSh, http://goo.gl/LKV2vA) Set
|
||||
// backing_dev_info::ra_pages to the min of that value and what was sent
|
||||
// in the request's max_readahead field.
|
||||
//
|
||||
// * (http://goo.gl/u2SqzH) Use backing_dev_info::ra_pages when deciding
|
||||
// how much to read ahead.
|
||||
//
|
||||
// * (http://goo.gl/JnhbdL) Don't read ahead at all if that field is zero.
|
||||
//
|
||||
// Reading a page at a time is a drag. Ask for a larger size.
|
||||
const maxReadahead = 1 << 20
|
||||
|
||||
// A connection to the fuse kernel process.
|
||||
type Connection struct {
|
||||
debugLogger *log.Logger
|
||||
|
@ -72,7 +91,7 @@ func newConnection(
|
|||
Dev: dev,
|
||||
}
|
||||
|
||||
err = fuseshim.InitMount(wrapped, TODO, TODO)
|
||||
err = fuseshim.InitMount(wrapped, maxReadahead, TODO)
|
||||
if err != nil {
|
||||
err = fmt.Errorf("fuseshim.InitMount: %v", err)
|
||||
return
|
||||
|
|
|
@ -129,26 +129,6 @@ func (c *MountConfig) bazilfuseOptions() (opts []fuseshim.MountOption) {
|
|||
opts = append(opts, fuseshim.SetOption("noappledouble", ""))
|
||||
}
|
||||
|
||||
// Ask the Linux kernel for larger read requests.
|
||||
//
|
||||
// As of 2015-03-26, the behavior in the kernel is:
|
||||
//
|
||||
// * (http://goo.gl/bQ1f1i, http://goo.gl/HwBrR6) Set the local variable
|
||||
// ra_pages to be init_response->max_readahead divided by the page size.
|
||||
//
|
||||
// * (http://goo.gl/gcIsSh, http://goo.gl/LKV2vA) Set
|
||||
// backing_dev_info::ra_pages to the min of that value and what was sent
|
||||
// in the request's max_readahead field.
|
||||
//
|
||||
// * (http://goo.gl/u2SqzH) Use backing_dev_info::ra_pages when deciding
|
||||
// how much to read ahead.
|
||||
//
|
||||
// * (http://goo.gl/JnhbdL) Don't read ahead at all if that field is zero.
|
||||
//
|
||||
// Reading a page at a time is a drag. Ask for a larger size.
|
||||
const maxReadahead = 1 << 20
|
||||
opts = append(opts, fuseshim.MaxReadahead(maxReadahead))
|
||||
|
||||
// Last but not least: other user-supplied options.
|
||||
for k, v := range c.Options {
|
||||
opts = append(opts, fuseshim.SetOption(k, v))
|
||||
|
|
Loading…
Reference in New Issue