1. 13 Jul, 2017 1 commit
    • Han-Wen Nienhuys's avatar
      splice: use syscall directly for splice I/O · a8bec8ce
      Han-Wen Nienhuys authored
      This avoids involving the go 1.9 poller in I/O, which causes hangs, as
      the poller does not understand the fcntl(O_NONBLOCK) tweak that we
      executed on the pipe's file descriptors.
      
      Fixes #164
      a8bec8ce
  2. 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
  3. 09 Jun, 2017 2 commits
  4. 24 Apr, 2017 1 commit
    • Jeff Hodges's avatar
      fix first unionfs test datarace · 5404bf0e
      Jeff Hodges authored
      This first race was easy to find and fix in the tests themselves.
      
      It exposes another race in nodefs.FileSystemConnector where a node's
      mount (and therefore, treeLock) is is not the same as the grand-parent
      node's is.
      
      Updates #138.
      5404bf0e
  5. 19 Apr, 2017 1 commit
  6. 14 Mar, 2017 1 commit
  7. 10 Mar, 2017 3 commits
  8. 21 Dec, 2016 2 commits
  9. 03 Nov, 2016 1 commit
  10. 02 Nov, 2016 3 commits
    • Han-Wen Nienhuys's avatar
      Rename test file. · f4003c9b
      Han-Wen Nienhuys authored
      Fixes #127.
      f4003c9b
    • Jonathon Reinhart's avatar
      nodefs: Change defaultNode.GetAttr() to call file.GetAttr() if not nil · 994fc0fe
      Jonathon Reinhart authored
      This enhances nodes which embed defaultNode (which is most of them),
      allowing those implementations to omit a GetAttr() method. Without this,
      when the kernel calls GetAttr() for an open file, FUSE will return a
      size of zero, causing a read() of the file to always return 0, even
      though fuse returns a nonzero number of bytes.
      
      One can leverage this behavior to create a Linux procfs-like file, which
      stat shows to be zero bytes, but can be successfully read.
      
      N.B. This behavior is only useful if the FileSystemConnector Options
      specify AttrTimeout of zero. Otherwise, the result of the first call to
      GetAttr() (file == nil) is cached, and the kernel allows zero bytes to
      be read. With this caching disabled, the next GetAttr() call (file !=
      nil) will be used to control the number of readable bytes.
      994fc0fe
    • Han-Wen Nienhuys's avatar
      a2e4f919
  11. 24 Oct, 2016 1 commit
  12. 18 Oct, 2016 2 commits
  13. 15 Sep, 2016 3 commits
  14. 25 Aug, 2016 1 commit
  15. 11 Aug, 2016 4 commits
  16. 10 Aug, 2016 1 commit
  17. 09 Aug, 2016 4 commits
  18. 04 Aug, 2016 3 commits
  19. 03 Aug, 2016 3 commits
  20. 31 Jul, 2016 1 commit
  21. 25 Jul, 2016 1 commit