- 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
-
- 13 Apr, 2016 1 commit
-
-
Han-Wen Nienhuys authored
Use the TreeWatcher interface in pathfs to synchronize the parent mapping in pathfs with the tree management in nodefs. Tested: loopback -l $mount $orig fsstress -p 1 -z -f rmdir=10 -f link=10 -f creat=10 -f mkdir=10 \ -f rename=30 -f stat=30 -f unlink=30 -f truncate=20 -m 8 -n 1000 \ -d $mount -s 1456162204 ; sleep 1; echo ok ; rm -Rf $mount Fixes #99. Change-Id: I8668571c7dabf6da6ec708eec53de1887864b9ea
-
- 04 Apr, 2016 1 commit
-
-
Han-Wen Nienhuys authored
Change-Id: I106a8b03d50b647c198e2ba45fb643841aba86b0
-
- 30 Mar, 2016 2 commits
-
-
Jakob Unterwurzacher authored
Seconds granularity is too coarse to understand what is happening, so add microseconds. In return, the date is dropped to keep the lines short. Old format: 2016/03/14 18:19:38 Dispatch: OPENDIR, NodeId: 1. New format: 18:18:35.988071 Dispatch: OPENDIR, NodeId: 1.
-
Jakob Unterwurzacher authored
This simplifies testing hard links support (aka ClientInodes) with external tools like fsstress.
-
- 19 Feb, 2016 2 commits
-
-
Han-Wen Nienhuys authored
-
Han-Wen Nienhuys authored
-
- 18 Feb, 2016 1 commit
-
-
Han-Wen Nienhuys authored
-
- 17 Feb, 2016 3 commits
-
-
Han-Wen Nienhuys authored
-
Han-Wen Nienhuys authored
-
Han-Wen Nienhuys authored
-
- 16 Feb, 2016 2 commits
-
-
Han-Wen Nienhuys authored
-
Han-Wen Nienhuys authored
-
- 12 Feb, 2016 1 commit
-
-
Jakob Unterwurzacher authored
Apart from adding the missing write into clientInodeMap, I have added a few comments about what happens. Hopefully helps the next person looking at this code.
-
- 09 Feb, 2016 2 commits
-
-
Han-Wen Nienhuys authored
-
Han-Wen Nienhuys authored
-
- 06 Feb, 2016 2 commits
-
-
Jakob Unterwurzacher authored
Also, make the script much less chatty.
-
Jakob Unterwurzacher authored
If the file handle is specified we should use it instead of picking one at random. Note that the only real change is for ftruncate. For fstat, fchown and fchmod the kernel currently never passes a file descriptor. Fixes #95.
-
- 03 Feb, 2016 1 commit
-
-
Han-Wen Nienhuys authored
-
- 02 Feb, 2016 6 commits
-
-
Han-Wen Nienhuys authored
This lets you Mount multiple nodes in parallel.
-
Han-Wen Nienhuys authored
-
Han-Wen Nienhuys authored
This prevents data races flagged by the race detector.
-
Han-Wen Nienhuys authored
-
Han-Wen Nienhuys authored
This fixes the data race in TestDeleteNotify.
-
Han-Wen Nienhuys authored
-
- 21 Jan, 2016 2 commits
-
-
Yongwoo Park authored
time.Unix() returns int64 regardless of target platform but timeval is defined as int32 values on ubuntu-32bit NsecToTimeval has a nanosecond problem(negative value) before epoch but still can use second
-
Yongwoo Park authored
-
- 14 Jan, 2016 3 commits
-
-
Han-Wen Nienhuys authored
-
Han-Wen Nienhuys authored
-
Han-Wen Nienhuys authored
-