aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorchrislu <chris.lu@gmail.com>2025-06-12 08:19:47 -0700
committerchrislu <chris.lu@gmail.com>2025-06-12 08:19:47 -0700
commitc79e73aa2a9ce9bb072a7b67747ff96d9effa075 (patch)
tree3ebafb8e141d59b69894068d012cde9506b81028
parente71d681feee81dbe01c59dbc657f8ce85be3f415 (diff)
downloadseaweedfs-c79e73aa2a9ce9bb072a7b67747ff96d9effa075.tar.xz
seaweedfs-c79e73aa2a9ce9bb072a7b67747ff96d9effa075.zip
mount: complete fix for freebsd
fix https://github.com/seaweedfs/seaweedfs/issues/6645
-rw-r--r--weed/command/mount_freebsd.go5
-rw-r--r--weed/command/mount_notsupported.go4
-rw-r--r--weed/command/mount_std.go7
-rw-r--r--weed/mount/weedfs_attr_freebsd.go8
-rw-r--r--weed/mount/weedfs_xattr.go3
-rw-r--r--weed/mount/weedfs_xattr_freebsd.go27
6 files changed, 49 insertions, 5 deletions
diff --git a/weed/command/mount_freebsd.go b/weed/command/mount_freebsd.go
new file mode 100644
index 000000000..05d6a1bc4
--- /dev/null
+++ b/weed/command/mount_freebsd.go
@@ -0,0 +1,5 @@
+package command
+
+func checkMountPointAvailable(dir string) bool {
+ return true
+}
diff --git a/weed/command/mount_notsupported.go b/weed/command/mount_notsupported.go
index 894c8e313..1e5c9f53d 100644
--- a/weed/command/mount_notsupported.go
+++ b/weed/command/mount_notsupported.go
@@ -1,5 +1,5 @@
-//go:build !linux && !darwin
-// +build !linux,!darwin
+//go:build !linux && !darwin && !freebsd
+// +build !linux,!darwin,!freebsd
package command
diff --git a/weed/command/mount_std.go b/weed/command/mount_std.go
index 84c84b767..677dca793 100644
--- a/weed/command/mount_std.go
+++ b/weed/command/mount_std.go
@@ -1,12 +1,11 @@
-//go:build linux || darwin
-// +build linux darwin
+//go:build linux || darwin || freebsd
+// +build linux darwin freebsd
package command
import (
"context"
"fmt"
- "github.com/seaweedfs/seaweedfs/weed/util/version"
"net"
"net/http"
"os"
@@ -17,6 +16,8 @@ import (
"syscall"
"time"
+ "github.com/seaweedfs/seaweedfs/weed/util/version"
+
"github.com/hanwen/go-fuse/v2/fuse"
"github.com/seaweedfs/seaweedfs/weed/glog"
"github.com/seaweedfs/seaweedfs/weed/mount"
diff --git a/weed/mount/weedfs_attr_freebsd.go b/weed/mount/weedfs_attr_freebsd.go
new file mode 100644
index 000000000..e7767d4a6
--- /dev/null
+++ b/weed/mount/weedfs_attr_freebsd.go
@@ -0,0 +1,8 @@
+package mount
+
+import (
+ "github.com/hanwen/go-fuse/v2/fuse"
+)
+
+func setBlksize(out *fuse.Attr, size uint32) {
+}
diff --git a/weed/mount/weedfs_xattr.go b/weed/mount/weedfs_xattr.go
index e1d6d4351..78acaafc8 100644
--- a/weed/mount/weedfs_xattr.go
+++ b/weed/mount/weedfs_xattr.go
@@ -1,3 +1,6 @@
+//go:build !freebsd
+// +build !freebsd
+
package mount
import (
diff --git a/weed/mount/weedfs_xattr_freebsd.go b/weed/mount/weedfs_xattr_freebsd.go
new file mode 100644
index 000000000..01cb748e5
--- /dev/null
+++ b/weed/mount/weedfs_xattr_freebsd.go
@@ -0,0 +1,27 @@
+package mount
+
+import (
+ "syscall"
+
+ "github.com/hanwen/go-fuse/v2/fuse"
+)
+
+func (wfs *WFS) GetXAttr(cancel <-chan struct{}, header *fuse.InHeader, attr string, dest []byte) (size uint32, code fuse.Status) {
+
+ return 0, fuse.Status(syscall.ENOTSUP)
+}
+
+func (wfs *WFS) SetXAttr(cancel <-chan struct{}, input *fuse.SetXAttrIn, attr string, data []byte) fuse.Status {
+
+ return fuse.Status(syscall.ENOTSUP)
+}
+
+func (wfs *WFS) ListXAttr(cancel <-chan struct{}, header *fuse.InHeader, dest []byte) (n uint32, code fuse.Status) {
+
+ return 0, fuse.Status(syscall.ENOTSUP)
+}
+
+func (wfs *WFS) RemoveXAttr(cancel <-chan struct{}, header *fuse.InHeader, attr string) fuse.Status {
+
+ return fuse.Status(syscall.ENOTSUP)
+}