summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJakob Unterwurzacher2016-10-16 20:20:00 +0200
committerJakob Unterwurzacher2016-10-16 20:20:00 +0200
commit891a3b4c8a02edc6b7c2163bce8827a70deab285 (patch)
treee79b5aa7345847f048058e36afef1a2052760fd1
parent4866785f4bc2ca0e7d6d332b7580bf8de8dd761d (diff)
fusefrontend: Utimens: one more band-aid
Revert once https://github.com/hanwen/go-fuse/pull/131 is merged.
-rw-r--r--internal/fusefrontend/file.go3
-rw-r--r--tests/matrix/matrix_test.go5
2 files changed, 5 insertions, 3 deletions
diff --git a/internal/fusefrontend/file.go b/internal/fusefrontend/file.go
index 796aee8..b625f6c 100644
--- a/internal/fusefrontend/file.go
+++ b/internal/fusefrontend/file.go
@@ -391,9 +391,10 @@ func (f *file) GetAttr(a *fuse.Attr) fuse.Status {
const BrokenAtimeOmit = true
func (f *file) Utimens(a *time.Time, m *time.Time) fuse.Status {
- if a == nil && BrokenAtimeOmit {
+ if BrokenAtimeOmit {
// Band-aid for a nil pointer crash, described in
// https://github.com/rfjakob/gocryptfs/issues/48
+ // Also band-aid for "mtime gets set to atime".
//
// TODO drop this once https://github.com/hanwen/go-fuse/pull/131 is
// merged
diff --git a/tests/matrix/matrix_test.go b/tests/matrix/matrix_test.go
index 774a7ae..0dcc76b 100644
--- a/tests/matrix/matrix_test.go
+++ b/tests/matrix/matrix_test.go
@@ -660,7 +660,8 @@ type utimesTestcaseStruct struct {
func compareUtimes(want [2]syscall.Timespec, actual [2]syscall.Timespec) error {
tsNames := []string{"atime", "mtime"}
for i := range want {
- if i == 1 {
+ if fusefrontend.BrokenAtimeOmit && i == 0 {
+ // Don't check atime. It's broken in go-fuse.
// TODO remove this once the pull request is merged:
// https://github.com/hanwen/go-fuse/pull/131
continue
@@ -702,7 +703,7 @@ func doTestUtimesNano(t *testing.T, path string) {
if fusefrontend.BrokenAtimeOmit {
// TODO remove this once the pull request is merged:
// https://github.com/hanwen/go-fuse/pull/131
- utimeTestcases = utimeTestcases[:1]
+ utimeTestcases = utimeTestcases[0:0]
}
for i, tc := range utimeTestcases {
err := syscall.UtimesNano(path, tc.in[:])