1. 15 Aug, 2024 2 commits
  2. 28 May, 2024 2 commits
  3. 18 May, 2024 2 commits
  4. 15 May, 2024 4 commits
  5. 12 May, 2024 1 commit
  6. 01 May, 2024 2 commits
  7. 30 Apr, 2024 1 commit
  8. 21 Apr, 2024 1 commit
    • lch's avatar
      posixtest: fix building of tests · 8d89f3cd
      lch authored
      Prefer x/sys/unix over syscall package, which supports FreeBSD.
      
      Change-Id: Ifd3a0fd6d2b90369a6e1e74d92606a655815a6a4
      8d89f3cd
  9. 20 Apr, 2024 2 commits
  10. 14 Apr, 2024 2 commits
  11. 12 Apr, 2024 5 commits
  12. 08 Apr, 2024 3 commits
  13. 25 Mar, 2024 2 commits
  14. 24 Mar, 2024 1 commit
    • Han-Wen Nienhuys's avatar
      fuse: fix deadlock with parallel mounts · 36b35911
      Han-Wen Nienhuys authored
      Commit 1aa7b7b2 ("fs: document known deadlocks") describes a deadlock
      scenario where inheriting file descriptors triggers a spurious close
      during subprocess setup, leading to deadlock.
      
      This exact scenario actually happens when setting up the FUSE mount
      using fusermount: the fusermount process inherits one half of a socket
      pair, which is used to pass back the opened /dev/fuse file.  After the
      mount is successful, we open a file in the FUSE mount for the poll
      hack. This means that in parallel scenarios, we may use fd 3 as the
      poll hack, while also calling fusermount with inherited file
      descriptors.
      
      Solve this by grabbing fd 3 during initialization.
      
      This is not completely foolproof, as FD 0, 1 and 2 could be closed
      (and then reused) after initialization finished, but this should be
      uncommon as 0, 1 and 2 are standard input/output/error.
      
      Doing it during the init phase means that we prevent deadlock for all
      users that inherit single file descriptors.
      
      Change-Id: If5ac7c941f0ee2e13ca657c31d056a676eed3fde
      36b35911
  15. 09 Feb, 2024 1 commit
    • Han-Wen Nienhuys's avatar
      fuse: don't set flagname keyed by syscall.O_LARGEFILE · e9e7c22a
      Han-Wen Nienhuys authored
      On amd64, syscall.O_LARGEFILE is 0x0, making it be ignored as a
      key. However, the kernel always passes 0x8000 to the FUSE server for
      the OPEN call.
      
      The previous behavior causes crashes on 386, because the flagname is
      added twice.
      
      Change-Id: Ibabcdfef4d90e4fa4d02963d45a4d4cf2cba1ea2
      e9e7c22a
  16. 20 Nov, 2023 1 commit
  17. 13 Nov, 2023 2 commits
  18. 10 Nov, 2023 2 commits
  19. 08 Nov, 2023 2 commits
    • Han-Wen Nienhuys's avatar
      fs: document known deadlocks · 1aa7b7b2
      Han-Wen Nienhuys authored
      Change-Id: I1e10f22dc13207277af45cbbc2ac6740c9d4e36e
      1aa7b7b2
    • Han-Wen Nienhuys's avatar
      fuse/test: avoid low-numbered fds for FUSE-backed files · 27a473d5
      Han-Wen Nienhuys authored
      As part of the fork/exec sequence, file descriptors that should be
      inherited are remapped with dup3() in the chld process. This causes
      implicit file close operations. If the file descriptors are backed by
      FUSE, this leads to FLUSH operations. If parallelism is limited with
      GOMAXPROCS, this can cause a deadlock, as there will not be threads
      left to service the FLUSH opcodes.
      
      Fixes #489
      
      Change-Id: I81bf4ab0624495aabb5bb9ec42a55c6f23340beb
      27a473d5
  20. 05 Nov, 2023 1 commit
    • Han-Wen Nienhuys's avatar
      fuse: retain interface types · 22d9c9dc
      Han-Wen Nienhuys authored
      This avoids one allocation under lock (calling sync.Pool.Put converts to
      interface{})
      
      Change-Id: Icfe155e34300dca398cea99b73bc5e10fd362ae3
      22d9c9dc
  21. 01 Oct, 2023 1 commit
    • Yasin Turan's avatar
      fs: bridge: Add missing Lseek whence checks · fc2c4d3d
      Yasin Turan authored
      The man page for lseek(2) says that the filesystem should
      return an ENXIO when the offset is greater than the file
      size on either SEEK_DATA or SEEK_HOLE or if the offset is
      set to the end of the file with SEEK_DATA (where there is
      an implicit hole). Adding these checks to the current Lseek
      implementation.
      
      Change-Id: I8db0913a9e37209e1681ffd11a9afb7f39810132
      fc2c4d3d