From 2112d99140e6fc4cb1c6dab4f4fd9f458d7081bc Mon Sep 17 00:00:00 2001 From: chrislu Date: Sun, 27 Feb 2022 01:13:32 -0800 Subject: [PATCH] mount2: add back readonly mode --- weed/command/mount2_std.go | 31 +++++++++++++++++++++++++++---- 1 file changed, 27 insertions(+), 4 deletions(-) diff --git a/weed/command/mount2_std.go b/weed/command/mount2_std.go index 9f87b35b5..fdb7a090c 100644 --- a/weed/command/mount2_std.go +++ b/weed/command/mount2_std.go @@ -158,10 +158,33 @@ func RunMount2(option *Mount2Options, umask os.FileMode) bool { Debug: false, // *option.debug, EnableLocks: false, ExplicitDataCacheControl: false, - // SyncRead: false, // set to false to enable the FUSE_CAP_ASYNC_READ capability - DirectMount: true, - DirectMountFlags: 0, - // EnableAcl: false, + DirectMount: true, + DirectMountFlags: 0, + //SyncRead: false, // set to false to enable the FUSE_CAP_ASYNC_READ capability + //EnableAcl: true, + } + if *option.nonempty { + fuseMountOptions.Options = append(fuseMountOptions.Options, "nonempty") + } + if *option.readOnly { + if runtime.GOOS == "darwin" { + fuseMountOptions.Options = append(fuseMountOptions.Options, "rdonly") + } else { + fuseMountOptions.Options = append(fuseMountOptions.Options, "ro") + } + } + if runtime.GOOS == "darwin" { + // https://github-wiki-see.page/m/macfuse/macfuse/wiki/Mount-Options + ioSizeMB := 1 + for ioSizeMB*2 <= *option.chunkSizeLimitMB && ioSizeMB*2 <= 32 { + ioSizeMB *= 2 + } + fuseMountOptions.Options = append(fuseMountOptions.Options, "daemon_timeout=600") + fuseMountOptions.Options = append(fuseMountOptions.Options, "noapplexattr") + fuseMountOptions.Options = append(fuseMountOptions.Options, "novncache") + fuseMountOptions.Options = append(fuseMountOptions.Options, "slow_statfs") + fuseMountOptions.Options = append(fuseMountOptions.Options, "volname="+*option.filer) + fuseMountOptions.Options = append(fuseMountOptions.Options, fmt.Sprintf("iosize=%d", ioSizeMB*1024*1024)) } // find mount point