package zfs import ( "os" "bazil.org/fuse" "bazil.org/fuse/fs" "golang.org/x/sys/unix" ) func Mount(mountpoint string) error { options := []fuse.MountOption{ fuse.AllowOther(), fuse.AllowNonEmptyMount(), fuse.MaxReadahead(uint32(128 << 10)), fuse.DefaultPermissions(), fuse.FSName("zurgfs"), } c, err := fuse.Mount(mountpoint, options...) if err != nil { return err } defer c.Close() srv := fs.New(c, nil) filesys := &FS{ uid: uint32(unix.Geteuid()), gid: uint32(unix.Getegid()), umask: os.FileMode(0), } // Serve our tree via FUSE. if err := srv.Serve(filesys); err != nil { return err } return nil } func Unmount(mountpoint string) error { fuse.Unmount(mountpoint) return nil }