An error occurred fetching the project authors.
  1. 12 Apr, 2023 1 commit
  2. 30 Jan, 2023 3 commits
    • Jakob Unterwurzacher's avatar
      fuse: DirectMount: replace hard-coded mount options · 3de2e5e1
      Jakob Unterwurzacher authored
      Do what fusermount does instead of hard-coding the strings.
      
      Change-Id: Idf18f1c5cd17b7f9db8e15e8bc5173d0f6ca41db
      3de2e5e1
    • Jakob Unterwurzacher's avatar
      fuse: fix DirectMount mixups · 039d39cf
      Jakob Unterwurzacher authored
      Two variable were defined but never used in what looks like
      a copy-paste error or something.
      
      Fix that, which also makes the tests pass.
      
      Change-Id: Iebf48583874977c518d888d9a80bc1f02e2a7f86
      039d39cf
    • Jakob Unterwurzacher's avatar
      fuse, fs: add DirectMount tests & DirectMountStrict option · 05c0aea6
      Jakob Unterwurzacher authored
      Reason for adding DirectMountStrict is making the DirectMount
      functionality testable, though it may have value for the user
      in some cases.
      
      Add defaultRawFileSystem & loopback tests for DirectMount
      and DirectMountStrict.
      
      The tests fail right now due to bugs in DirectMount that will be fixed
      shortly:
      
      	go-fuse/fuse$ sudo /usr/local/go/bin/go test -run TestDirectMount
      	[...]
      	2022/12/28 20:19:21 mountDirect: calling syscall.Mount("", "/tmp/TestDirectMount3242971772", "fuse./tmp/go-build1215740", 0x0, "fd=7,rootmode=40000,user_id=0,group_id=0")
      	2022/12/28 20:19:21 mount: failed to do direct mount: invalid argument
      	[...]
      
      Change-Id: Ibfa2fa141cb43e1f8c7319233c454a3e85fa435e
      05c0aea6
  3. 19 Dec, 2021 1 commit
    • Jakob Unterwurzacher's avatar
      fuse: prefer fusermount3 over fusermount; add debug output · 934a183e
      Jakob Unterwurzacher authored
      fusermount is (usually) from libfuse v2, and fusermount3 is from
      libfuse v3, which is the actively-developed version.
      
      Importantly, libfuse v3 added ExFAT to the list of filesystems
      that users are allowed to mount on, and libfuse v2 did not.
      
      The only ABI difference between fusermount and fusermount3 that
      I am aware of is that fusermount3 dropped the allow_empty option.
      
      Filesystems had to deal with that already, as fusermount may
      also be from libfuse v3, depending on what the distro does.
      
      This commit also adds two lines of debug output about which binary
      we actually call.
      
      Passes all.bash & the gocryptfs test suite.
      
      Fixes https://github.com/hanwen/go-fuse/issues/394
      Fixes https://github.com/rfjakob/gocryptfs/issues/626
      
      Change-Id: Id4574fb9c8d2c812a524181a76616159256d551c
      934a183e
  4. 25 Aug, 2021 2 commits
    • Jakob Unterwurzacher's avatar
      fuse: move parseFuseFd() to unbreak darwin build · 61df8108
      Jakob Unterwurzacher authored
      Unfortunately, I broke darwin with the last commit:
      
      + GOOS=darwin
      + GOARCH=amd64
      + go build -tags without_openssl -o /dev/null
      ../../../../pkg/mod/github.com/hanwen/go-fuse/v2@v2.1.1-0.20210825070001-74a933d6/fuse/server.go:122:5: undefined: parseFuseFd
      ../../../../pkg/mod/github.com/hanwen/go-fuse/v2@v2.1.1-0.20210825070001-74a933d6/fuse/server.go:887:5: undefined: parseFuseFd
      
      Move parseFuseFd() to build on all archs to unbreak the build.
      
      Change-Id: Ice173cc70a6a95765b56b444623b68ed92382052
      61df8108
    • Jakob Unterwurzacher's avatar
      fuse: support special /dev/fd/N mountpoint · 74a933d6
      Jakob Unterwurzacher authored
      libfuse introduced [1] a special `/dev/fd/N` syntax for the mountpoint:
      It means that a privileged parent process:
      
       * Opened /dev/fuse
       * Called mount() on a real mountpoint directory
       * Inherited the fd to /dev/fuse to us
       * Informs us about the fd number via /dev/fd/N
      
      This functionality is used to allow FUSE mounts inside containers
      that have neither root permissions nor suid binaries [2], and
      for the --drop_privileges flag of mount.fuse3 [4]
      
      Tested with singularity and gocryptfs and actually works [3].
      
      v2: Added doccomment for NewServer.
      v3: Added specific error message on Server.Unmount().
      v4: Moved mount details to package comment
      
      [1] https://github.com/libfuse/libfuse/commit/64e11073b9347fcf9c6d1eea143763ba9e946f70
      [2] https://github.com/rfjakob/gocryptfs/issues/590
      [3] $ singularity run --fusemount "host:gocryptfs --extpass echo --extpass test /tmp/a /mnt" docker://ubuntu
          INFO:    Using cached SIF image
          Reading password from extpass program "echo", arguments: ["test"]
          Decrypting master key
          bash: /home/jakob/.cargo/env: No such file or directory
          bash: /home/jakob/.cargo/env: No such file or directory
          bash: /home/jakob/.cargo/env: No such file or directory
          Singularity> Filesystem mounted and ready.
      [4] man mount.fuse3
      
      Change-Id: Ibcc2464b0ef1e3d236207981b487fd9a7d94c910
      74a933d6
  5. 12 Aug, 2021 1 commit
  6. 22 Nov, 2019 1 commit
  7. 10 Aug, 2018 1 commit
    • Chris Marget's avatar
      Removed UID test and syscall-based unmount. · 95c63709
      Chris Marget authored
      On a Linux system with go-fuse program running as root, the mount is
      performed by calling /bin/fusermount, and the unmount is performed with
      syscall.Unmount()
      
      This creates a problem on systems (CentOS 6) with a static-but-edited-by-mount
      /etc/mtab file.
      
       - fusermount adds a line to mtab when the go-fuse program starts
       - syscall.Unmount() doesn't edit the file on program exit
       - subsequent invocations of the program fail to mount with:
      
          "Mount fail: fusermount exited with code 256"
      
      Deleting the now-inaccurate mtab entry clears things up.
      
      There's probably a workaround by adding "-n" option so that mount doesn't
      edit mtab in the first place, but it's not obvious where to insert that when
      starting with the hello.go example.
      95c63709
  8. 28 Jul, 2017 1 commit
  9. 11 Jul, 2017 1 commit
    • Shayan Pooya's avatar
      Do not fork a new process to unmount if user is privileged · c878ca45
      Shayan Pooya authored
      The root user can issue the umount syscall and does not need the
      fusermount binary. Therefore, it is not necessary to fork and exec a new
      process just to run the umount binary.
      
      Golang has a global lock held for forking (See exec_unix.go in the golang
      source tree):
      "Acquire the fork lock so that no other threads create new fds that are
      not yet close-on-exec before we fork."
      
      So it would be best if processes would refrain from forking
      unnecessarily.
      Signed-off-by: default avatarShayan Pooya <shayan@arista.com>
      c878ca45
  10. 04 Aug, 2016 1 commit
  11. 03 Aug, 2016 1 commit
  12. 25 Jul, 2016 1 commit
  13. 22 Jul, 2016 1 commit
    • Han-Wen Nienhuys's avatar
      Rewrite mount_darwin.go, obviating CGO. · ebe08a81
      Han-Wen Nienhuys authored
      The strategy was inspired by the mount code for Darwin in
      bazil.org/fuse.
      
      Unfortunately, OSX must have the event loop started before mounting
      can be completed. This means that WaitMount() must be maintained for
      use on OSX.
      
      Change-Id: Ie53425f306b4575b3e94e45407bab05017f5ce14
      ebe08a81
  14. 17 Dec, 2015 1 commit
  15. 01 Dec, 2015 1 commit
  16. 28 Oct, 2015 1 commit
  17. 29 Sep, 2015 1 commit
    • Jakob Unterwurzacher's avatar
      mount_linux: Also try absolute path for fusermount and umount · 41b8187f
      Jakob Unterwurzacher authored
      Assuming that the loopback example binary is at /bin/loopbackfs,
      you can mount like this:
      
      	mount -t fuse.loopbackfs /tmp/mountpoint /tmp/original
      
      However, "mount" passes an empty PATH to loopbackfs.
      Trying the absolute path too fixes the issue.
      
      This is in preparation of porting xfstests to go-fuse.
      41b8187f
  18. 30 Dec, 2013 1 commit
  19. 24 Mar, 2013 1 commit
  20. 01 Mar, 2013 1 commit
  21. 15 Feb, 2013 1 commit
  22. 19 Mar, 2012 1 commit
  23. 23 Feb, 2012 1 commit
  24. 17 Feb, 2012 1 commit
  25. 30 Nov, 2011 1 commit
  26. 19 Nov, 2011 1 commit
  27. 17 Nov, 2011 2 commits
  28. 09 Nov, 2011 1 commit
  29. 03 Nov, 2011 1 commit
  30. 20 Oct, 2011 1 commit
  31. 18 Oct, 2011 1 commit
  32. 03 Oct, 2011 1 commit
  33. 04 Aug, 2011 1 commit
  34. 30 Jul, 2011 2 commits
  35. 29 Jul, 2011 1 commit