- 09 Aug, 2016 4 commits
-
-
Jakob Unterwurzacher authored
When mounting using relative paths, "touch" on directories used to fail. "touch" on files works accidentially because it uses a file descriptor internally. $ loopback b a & $ cd b $ mkdir foo $ touch foo touch: setting times of 'foo': Not a directory strace: [pid 30185] utimensat(0, "a/foo", [{1468441847, 0}, {1468441847, 0}], AT_SYMLINK_NOFOLLOW <unfinished ...> [pid 30185] <... utimensat resumed> ) = -1 ENOTDIR (Not a directory)
-
Han-Wen Nienhuys authored
-
Han-Wen Nienhuys authored
-
Adam H. Leventhal authored
On Mac OS X the Finder loses its mind if GetXAttr returns ENODATA rather than ENOATTR. On Linux, ENOATTR is just an alias for ENOATTR. The Linux man page references ENOATTR: http://man7.org/linux/man-pages/man2/fgetxattr.2.html
-
- 04 Aug, 2016 3 commits
-
-
Han-Wen Nienhuys authored
Gerrithub requires overly broad write permissions, and hence its usage is discontinued.
-
Han-Wen Nienhuys authored
Add AUTHORS file.
-
Adam H. Leventhal authored
-
- 03 Aug, 2016 3 commits
-
-
Han-Wen Nienhuys authored
-
Han-Wen Nienhuys authored
This makes CFuse and go-fuse easier to compare. Get rid of the baroque analysis code, unused delay code, and some general cleanup.
-
Han-Wen Nienhuys authored
Surpress benchmark if -v is not given.
-
- 31 Jul, 2016 1 commit
-
-
Adam H. Leventhal authored
-
- 25 Jul, 2016 5 commits
-
-
Han-Wen Nienhuys authored
circuit our read. Change-Id: Id83c4b3738c5cedf9d9b738cab21632db6061126
-
Han-Wen Nienhuys authored
kernel. Change-Id: Ic481d3aadac3979722f9d7c1e2f8d305dcbd7e10
-
Han-Wen Nienhuys authored
Use normal loopback for LargeWrite test, and move it into loopback_test.go Change-Id: I61c8186aea63f7bb6e591f1bcadcdad49e0866fe
-
Han-Wen Nienhuys authored
Change-Id: Id6edd71df1e623affbbc66b2d96b5c23aedd3fe0
-
Han-Wen Nienhuys authored
Check for kernel version before trying notify. Change-Id: I6b241dd53377d4aa43b109b981f3941d2ad8dbb4
-
- 22 Jul, 2016 1 commit
-
-
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
-
- 18 Jul, 2016 4 commits
-
-
Han-Wen Nienhuys authored
Change-Id: I6e17cd513f1a26110a36208f36d1a190675eb986
-
Han-Wen Nienhuys authored
Change-Id: I6a340b15a4876998616c7c16574b38531a9ba9c7
-
Han-Wen Nienhuys authored
Change-Id: I265108f96471b9b472c29c2d9fbbd1d4dd6b44d0
-
Han-Wen Nienhuys authored
Change-Id: I8eeddc02b1793fb546aa35f50c99b9e912d19123
-
- 13 Jul, 2016 2 commits
-
-
Han-Wen Nienhuys authored
Change-Id: Iec448c7b731893312a846f6b42c87c660b2399d6
-
Han-Wen Nienhuys authored
This ensures that the caller can access fsConnector.Server(), eg. to inspect the InitRequest or InitResponse. Change-Id: Ia09d77eae0f1af8bce46b07f386fdda20b2ccb95
-
- 12 Jul, 2016 2 commits
-
-
Han-Wen Nienhuys authored
sync.Pool is safe for concurrent use. Change-Id: I013f391fea9ed218e6bd4529fd2f62de75735bff
-
Han-Wen Nienhuys authored
Change-Id: Idddaef2216c2fd216476da8744efcda679f12dd6
-
- 11 Jul, 2016 1 commit
-
-
Han-Wen Nienhuys authored
SetDebug methods are maintained for compatibility. This is part of a patch series to process the INIT opcode on mount. This will enable filesystems to switch functionality depending on kernel settings. In order to get the debug output for the INIT opcode, the debug option must be passed to the mount method. Deprecate the SetDebug methods. There is often little practical use in toggling debug on the fly, since the error scenarios depend on timing details, and must usually be isolated into unittests. Change-Id: I221c995add5f7621b627f738d7e97af7daf81b2a
-
- 05 Jul, 2016 3 commits
-
-
Han-Wen Nienhuys authored
This fixes flakiness in TestNoOpen. Change-Id: I8909236d9539c1729bd8a78d460d6637f7c775e0
-
Han-Wen Nienhuys authored
Change-Id: I78393b40721d71a6ba4cdc634da079dec5669c26
-
Han-Wen Nienhuys authored
Change-Id: I99beacd150b49e062c6df2c16d52e73fce6ab111
-
- 30 Jun, 2016 3 commits
-
-
Han-Wen Nienhuys authored
Any node that returns ENOSYS for Getxattr will cause the kernel to stop issuing Getxattr calls altogether. In file systems that must support GetXAttr and that has multiple node types, tracking down all node types and overriding GetXAttr for them individually is annoying. For filesystems that need the performance benefit of skipping GETXATTR calls, provide a DisableXAttrs option. Change-Id: I98327aa959b3b26192e15bc3be96b7a6c0ada5f6
-
Han-Wen Nienhuys authored
Change-Id: Iff1b21137fdbdccc7d7fa83b619df333eab7be26
-
Han-Wen Nienhuys authored
Change-Id: I6c17b6937483ad4a396cafe43d3b4605ce4a83cf
-
- 29 May, 2016 1 commit
-
-
Jakob Unterwurzacher authored
Taking the treeLock after inodeMap.Forget() exposed a small window where the Inode that is about to be forgotten could be handed out to the kernel under a new node ID. Testing with fsstress for 1.000+ iterations showed that the race can actually be hit, and causes "No such file or directory" errors. With the lock taken earlier, loopbackfs passes 10.000+ fsstress iterations. Change-Id: Ic02ae757d9a726ece01e8f0b3f0ff877f8e2dbc3
-
- 23 May, 2016 1 commit
-
-
Jakob Unterwurzacher authored
The reason we have to do parent tracking is combination of (a) the Node structure has a map to its children (b) FORGET messages don't enumerate parents of a node, just the node to be forgotten. Hence to keep the map in sync with the kernel's FS tree, we have to update the parents of a node on FORGET too. This passes 90+ iterations of fsstress-loopback.bash . ( https://github.com/rfjakob/gocryptfs/blob/master/stress_tests/fsstress-loopback.bash ) Change-Id: Idea478d25703a59d17086db59c110ac55281176a
-
- 22 May, 2016 1 commit
-
-
Jakob Unterwurzacher authored
Instead, drop the node from all parents in OnForget. Fixes issue #106, stress-loopback (from https://github.com/rfjakob/fsstress) now passes 40+ iterations. Change-Id: I9a6bc08b88fc4f5a8bb63d449b29430e5b24ee7a
-
- 18 May, 2016 1 commit
-
-
Jakob Unterwurzacher authored
should not be changed. nodefs incorrectly passed 0 for this case, leading to chgrp(1) always failing for non-root mounts. Fixes #107. Change-Id: I3832f847c1d490b7207747e70af4d03fa2fe21d5
-
- 24 Apr, 2016 4 commits
-
-
Jakob Unterwurzacher authored
We must match "v.parent" against "parentPI", not against ourself. This caused entries in the clientInodeMap to never be removed. Change-Id: Icab14e425105851071a4d95776b4599ba9353a2d
-
Jakob Unterwurzacher authored
This allows you to track which Dispatch a Serialize belongs to, to understand which requests are outstanding. Change-Id: I1348dc2dd144840a3142b407616d700c8e988400
-
Jakob Unterwurzacher authored
Change-Id: I5612016b2bccf9e28186a83f2f420cefe1c30120
-
Jakob Unterwurzacher authored
LOOKUP is changed to use the human-readable "NodeId: %d" output that is used in most other places. This also makes grepping easier. Also adds debug output for batch forget. Change-Id: I086b4c34b17c98b7df474e90cf9b8b493ac9e040
-