diff options
| -rw-r--r-- | internal/fusefrontend/args.go | 2 | ||||
| -rw-r--r-- | mount.go | 9 | 
2 files changed, 8 insertions, 3 deletions
| diff --git a/internal/fusefrontend/args.go b/internal/fusefrontend/args.go index 677ffd6..8e28d14 100644 --- a/internal/fusefrontend/args.go +++ b/internal/fusefrontend/args.go @@ -26,8 +26,6 @@ type Args struct {  	ConfigCustom bool  	// NoPrealloc disables automatic preallocation before writing  	NoPrealloc bool -	// Try to serialize read operations, "-serialize_reads" -	SerializeReads bool  	// Force decode even if integrity check fails (openSSL only)  	ForceDecode bool  	// Exclude is a list of paths to make inaccessible, starting match at @@ -273,7 +273,6 @@ func initFuseFrontend(args *argContainer) (rootNode fs.InodeEmbedder, wipeKeys f  		LongNames:          args.longnames,  		ConfigCustom:       args._configCustom,  		NoPrealloc:         args.noprealloc, -		SerializeReads:     args.serialize_reads,  		ForceDecode:        args.forcedecode,  		ForceOwner:         args._forceOwner,  		Exclude:            args.exclude, @@ -377,6 +376,14 @@ func initGoFuse(rootNode fs.InodeEmbedder, args *argContainer) *fuse.Server {  		MaxWrite: fuse.MAX_KERNEL_WRITE,  		Options:  []string{fmt.Sprintf("max_read=%d", fuse.MAX_KERNEL_WRITE)},  		Debug:    args.fusedebug, +		// The kernel usually submits multiple read requests in parallel, +		// which means we serve them in any order. Out-of-order reads are +		// expensive on some backing network filesystems +		// ( https://github.com/rfjakob/gocryptfs/issues/92 ). +		// +		// Setting SyncRead disables FUSE_CAP_ASYNC_READ. This makes the kernel +		// do everything in-order without parallelism. +		SyncRead: args.serialize_reads,  	}  	mOpts := &fuseOpts.MountOptions | 
