aboutsummaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2017-01-03reverse: add single-entry path cacheJakob Unterwurzacher
Speeds up the "ls -lR" benchmark from 2.6 seconds to 2.0.
2017-01-03reverse: factor out rDecryptNameJakob Unterwurzacher
This prepares the code for the introduction of a path cache.
2017-01-03test.bash: don't let the test process inherit the lock fileJakob Unterwurzacher
This meant that dangling mounts (and gocryptfs processes) kept the lock open.
2017-01-03Add reverse benchmarkJakob Unterwurzacher
2017-01-03tests: only check the size in dl-linux-tarball.bashJakob Unterwurzacher
Getting rid of the MD5 calculation makes calling the script virtually free, where it took 0.2 seconds before.
2017-01-03tests: factor out dl-linux-tarball.bashJakob Unterwurzacher
This will be also used by the reverse benchmarks.
2017-01-02main: disconnect from the controlling terminalJakob Unterwurzacher
This prevents us from getting SIGINT when the user kills the running script.
2016-12-13benchmark.bash: reject "-openssl" option for encfs modeJakob Unterwurzacher
2016-12-13benchmark.bash: add proper argument handlingJakob Unterwurzacher
2016-12-13benchmark.bash: OSX dd does not support "K" postfixJakob Unterwurzacher
2016-12-10benchmark.bash: add comments to show how to force openssl usageJakob Unterwurzacher
2016-12-10prefer_openssl: default to Go GCM on OSXJakob Unterwurzacher
2016-12-10ctlsock: abort the connection if the request is too bigJakob Unterwurzacher
Reading partial JSON would cause a mess. Just kill the connection. Also, stop using syscall.PathMax that is not defined on Darwin ( https://github.com/rfjakob/gocryptfs/issues/15#issuecomment-264253024 )
2016-12-10ctlsock: add a note about Accept() throwing errors on Close()Jakob Unterwurzacher
2016-12-10ctlsock: exit early if socket cannot be created; delete on exitJakob Unterwurzacher
Both are achieved by opening the socket from main and passing it to the ctlsock package instead of passing the path.
2016-12-10test.bash: call vet earlyJakob Unterwurzacher
2016-12-10stupidgcm: Fix without_openssl build failureJakob Unterwurzacher
Also, always call build-without-openssl.bash from test.bash. Failure was: internal/stupidgcm/without_openssl.go:29: missing return at end of function
2016-12-10ctlsock: sanitize paths before passing them to the backendJakob Unterwurzacher
You used to be able to crash gocryptfs by passing "/foo" of "foo/" to the ctlsock. Fixes https://github.com/rfjakob/gocryptfs/issues/66
2016-12-10ctlsock: exit if socket cannot be createdJakob Unterwurzacher
2016-12-10test.bash: check for naked "panic()" callsJakob Unterwurzacher
2016-12-10Replace all calls to naked panic() with log.Panic()Jakob Unterwurzacher
We want all panics to show up in the syslog.
2016-12-06build-without-openssl: compile staticallyJakob Unterwurzacher
$ ldd gocryptfs not a dynamic executable $ file gocryptfs gocryptfs: ELF 64-bit LSB executable, x86-64, version 1 (SYSV), statically linked, not stripped
2016-12-04README: v1.2 includes the rendered man page in the tarballv1.2Jakob Unterwurzacher
2016-12-04Update README for v1.2 releaseJakob Unterwurzacher
2016-11-28fusefrontend: preserve owner for symlinksJakob Unterwurzacher
https://github.com/rfjakob/gocryptfs/issues/64
2016-11-28fusefronted: preserve owner for device nodes and socketsJakob Unterwurzacher
https://github.com/rfjakob/gocryptfs/issues/64
2016-11-28fusefrontend: use Lchown when preserving ownerJakob Unterwurzacher
This prevents (unlikely) symlink race attacks
2016-11-26main: fix USR1 race condition, fixes test flakinessJakob Unterwurzacher
We could have gotten the signal before the handler was ready, which caused the process to wait indefinitely. This was the reason test.bash sometimes hung.
2016-11-26tests: don't call t.Fatal in checkExampleFSJakob Unterwurzacher
Calling t.Fatal means that the parent test has no chance to clean up.
2016-11-26test.bash: lock against multiple parallel incovationsJakob Unterwurzacher
Running multiple test.bash in parallel causes all kinds of mayham.
2016-11-26Add write coalescing and -noprealloc to changelogJakob Unterwurzacher
2016-11-26performance.txt: add numbers for current gocryptfs master and encfs v1.9.1Jakob Unterwurzacher
2016-11-26benchmark.bash: double write lengthJakob Unterwurzacher
Writing 1000 128KB blocks takes only 1 second and yielded inconsistent results. With 2000, things look saner.
2016-11-25main, fusefrontend: add "-noprealloc" optionJakob Unterwurzacher
Preallocation is very slow on hdds that run btrfs. Give the user the option to disable it. This greatly speeds up small file operations but reduces the robustness against out-of-space errors. Also add the option to the man page. More info: https://github.com/rfjakob/gocryptfs/issues/63
2016-11-25fusefrontend: coalesce 4kB writesJakob Unterwurzacher
This improves performance on hdds running ext4, and improves streaming write performance on hdds running btrfs. Tar extract slows down on btrfs for some reason. See https://github.com/rfjakob/gocryptfs/issues/63 Benchmarks: encfs v1.9.1 ============ $ ./benchmark.bash -encfs /mnt/hdd-ext4 Testing EncFS at /mnt/hdd-ext4/benchmark.bash.u0g WRITE: 131072000 bytes (131 MB, 125 MiB) copied, 1,48354 s, 88,4 MB/s UNTAR: 20.79 LS: 3.04 RM: 6.62 $ ./benchmark.bash -encfs /mnt/hdd-btrfs Testing EncFS at /mnt/hdd-btrfs/benchmark.bash.h40 WRITE: 131072000 bytes (131 MB, 125 MiB) copied, 1,52552 s, 85,9 MB/s UNTAR: 24.51 LS: 2.73 RM: 5.32 gocryptfs v1.1.1-26-g4a7f8ef ============================ $ ./benchmark.bash /mnt/hdd-ext4 Testing gocryptfs at /mnt/hdd-ext4/benchmark.bash.1KG WRITE: 131072000 bytes (131 MB, 125 MiB) copied, 1,55782 s, 84,1 MB/s UNTAR: 22.23 LS: 1.47 RM: 4.17 $ ./benchmark.bash /mnt/hdd-btrfs Testing gocryptfs at /mnt/hdd-btrfs/benchmark.bash.2t8 WRITE: 131072000 bytes (131 MB, 125 MiB) copied, 6,87206 s, 19,1 MB/s UNTAR: 69.87 LS: 1.52 RM: 5.33 gocryptfs v1.1.1-32 =================== $ ./benchmark.bash /mnt/hdd-ext4 Testing gocryptfs at /mnt/hdd-ext4/benchmark.bash.Qt3 WRITE: 131072000 bytes (131 MB, 125 MiB) copied, 1,22577 s, 107 MB/s UNTAR: 23.46 LS: 1.46 RM: 4.67 $ ./benchmark.bash /mnt/hdd-btrfs/ Testing gocryptfs at /mnt/hdd-btrfs//benchmark.bash.XVk WRITE: 131072000 bytes (131 MB, 125 MiB) copied, 3,68735 s, 35,5 MB/s UNTAR: 116.87 LS: 1.84 RM: 6.34
2016-11-23main: give deferred functions a chance to run (fixes -cpuprofile)Jakob Unterwurzacher
2016-11-23benchmark.bash: allow to specify directoryJakob Unterwurzacher
2016-11-23Drop "benchmark-synthetic.bash"Jakob Unterwurzacher
This scipt was broken for a long time and not very useful.
2016-11-17Fix golint warnings, add helper scriptJakob Unterwurzacher
2016-11-17README: start list for v1.2Jakob Unterwurzacher
2016-11-17tests: rename fsstress-loopback.bash to fsstress-gocryptfs.bashJakob Unterwurzacher
The primary use is testing gocryptfs, after all.
2016-11-17tests: add OpenTruncateRead testJakob Unterwurzacher
This is a regression test for the issue that was fixed by the last commit.
2016-11-17fusefrontend: get the file ID from the open files tableJakob Unterwurzacher
This fixes the problem that a truncate can reset the file ID without the other open FDs noticing it.
2016-11-17fusefrontend: upgrade wlockMap to use device AND inode numberJakob Unterwurzacher
If there are multiple filesystems backing the gocryptfs filesystems inode numbers are not guaranteed to be unique.
2016-11-11MANPAGE: document ctlsockJakob Unterwurzacher
2016-11-10ctlsock: prevent panic on invalid decrypt requestJakob Unterwurzacher
2016-11-10tests: allow overriding hardcoded arguments in Mount helperJakob Unterwurzacher
2016-11-10ctlsock: implement EncryptPath for reverse mode, add testsJakob Unterwurzacher
2016-11-10reverse: fix longname decoding bugJakob Unterwurzacher
This could have caused spurious ENOENT errors. That it did not cause these errors all the time is interesting and probably because an earlier readdir would place the entry in the cache. This masks the bug.
2016-11-10Fix golint warningsJakob Unterwurzacher
$ golint ./... | grep -v underscore | grep -v ALL_CAPS internal/fusefrontend_reverse/rfs.go:52:36: exported func NewFS returns unexported type *fusefrontend_reverse.reverseFS, which can be annoying to use internal/nametransform/raw64_go1.5.go:10:2: exported const HaveRaw64 should have comment (or a comment on this block) or be unexported