mount: add --async-read flag to disable asynchronous reads
See: https://forum.rclone.org/t/constantly-high-iowait-add-log/14156
This commit is contained in:
parent
3c91abce74
commit
e3c11c9ca1
@ -32,12 +32,14 @@ func mountOptions(device string) (options []fuse.MountOption) {
|
|||||||
fuse.Subtype("rclone"),
|
fuse.Subtype("rclone"),
|
||||||
fuse.FSName(device),
|
fuse.FSName(device),
|
||||||
fuse.VolumeName(mountlib.VolumeName),
|
fuse.VolumeName(mountlib.VolumeName),
|
||||||
fuse.AsyncRead(),
|
|
||||||
|
|
||||||
// Options from benchmarking in the fuse module
|
// Options from benchmarking in the fuse module
|
||||||
//fuse.MaxReadahead(64 * 1024 * 1024),
|
//fuse.MaxReadahead(64 * 1024 * 1024),
|
||||||
//fuse.WritebackCache(),
|
//fuse.WritebackCache(),
|
||||||
}
|
}
|
||||||
|
if mountlib.AsyncRead {
|
||||||
|
options = append(options, fuse.AsyncRead())
|
||||||
|
}
|
||||||
if mountlib.NoAppleDouble {
|
if mountlib.NoAppleDouble {
|
||||||
options = append(options, fuse.NoAppleDouble())
|
options = append(options, fuse.NoAppleDouble())
|
||||||
}
|
}
|
||||||
|
@ -36,6 +36,7 @@ var (
|
|||||||
NoAppleDouble = true // use noappledouble by default
|
NoAppleDouble = true // use noappledouble by default
|
||||||
NoAppleXattr = false // do not use noapplexattr by default
|
NoAppleXattr = false // do not use noapplexattr by default
|
||||||
DaemonTimeout time.Duration // OSXFUSE only
|
DaemonTimeout time.Duration // OSXFUSE only
|
||||||
|
AsyncRead = true // do async reads by default
|
||||||
)
|
)
|
||||||
|
|
||||||
// Global constants
|
// Global constants
|
||||||
@ -356,6 +357,7 @@ be copied to the vfs cache before opening with --vfs-cache-mode full.
|
|||||||
flags.BoolVarP(cmdFlags, &Daemon, "daemon", "", Daemon, "Run mount as a daemon (background mode).")
|
flags.BoolVarP(cmdFlags, &Daemon, "daemon", "", Daemon, "Run mount as a daemon (background mode).")
|
||||||
flags.StringVarP(cmdFlags, &VolumeName, "volname", "", VolumeName, "Set the volume name (not supported by all OSes).")
|
flags.StringVarP(cmdFlags, &VolumeName, "volname", "", VolumeName, "Set the volume name (not supported by all OSes).")
|
||||||
flags.DurationVarP(cmdFlags, &DaemonTimeout, "daemon-timeout", "", DaemonTimeout, "Time limit for rclone to respond to kernel (not supported by all OSes).")
|
flags.DurationVarP(cmdFlags, &DaemonTimeout, "daemon-timeout", "", DaemonTimeout, "Time limit for rclone to respond to kernel (not supported by all OSes).")
|
||||||
|
flags.BoolVarP(cmdFlags, &AsyncRead, "async-read", "", AsyncRead, "Use asynchronous reads.")
|
||||||
|
|
||||||
if runtime.GOOS == "darwin" {
|
if runtime.GOOS == "darwin" {
|
||||||
flags.BoolVarP(cmdFlags, &NoAppleDouble, "noappledouble", "", NoAppleDouble, "Sets the OSXFUSE option noappledouble.")
|
flags.BoolVarP(cmdFlags, &NoAppleDouble, "noappledouble", "", NoAppleDouble, "Sets the OSXFUSE option noappledouble.")
|
||||||
|
Loading…
Reference in New Issue
Block a user