diff options
author | Jakob Unterwurzacher | 2016-01-25 00:51:28 +0100 |
---|---|---|
committer | Jakob Unterwurzacher | 2016-01-25 00:51:28 +0100 |
commit | 4c9e249e3ac1fc2995e01eb1ed24799c3a3bc66b (patch) | |
tree | 97a9eb498ef70a3c00dd7bd8fafb4765abeecf5b /cryptfs/names_diriv.go | |
parent | 4259c8f7ebc9f5d167556ed142e82e8232706de6 (diff) |
Convert fdLock to an RWMutex and protect the whole transaction
...against concurrent closes.
The testcase
(set -e; while true; do truncate -s $RANDOM b; done) &
(set -e; while true; do truncate -s $RANDOM b; done) &
uncovered lots of unnecessary RMW failures that were the result
of concurrent closes.
With this patch, the only remaining error is "Truncate on forgotten file"
that is probably caused by a problem in the go-fuse lib
( https://github.com/hanwen/go-fuse/issues/95 )
Diffstat (limited to 'cryptfs/names_diriv.go')
-rw-r--r-- | cryptfs/names_diriv.go | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/cryptfs/names_diriv.go b/cryptfs/names_diriv.go index 9519ebc..45abfce 100644 --- a/cryptfs/names_diriv.go +++ b/cryptfs/names_diriv.go @@ -1,9 +1,9 @@ package cryptfs import ( - "os" "fmt" "io/ioutil" + "os" "path/filepath" "strings" "sync" |