From c2192cfcade7b6a165f32a1b7471dfb765e86e00 Mon Sep 17 00:00:00 2001 From: Jakob Unterwurzacher Date: Sun, 30 Oct 2016 16:29:36 +0100 Subject: [PATCH] fusefrontend: drop atime workarounds The fix at https://github.com/hanwen/go-fuse/pull/131 has been merged. Drop the workarounds and re-enable the tests. --- internal/fusefrontend/file.go | 15 --------------- tests/matrix/matrix_test.go | 10 ++-------- 2 files changed, 2 insertions(+), 23 deletions(-) diff --git a/internal/fusefrontend/file.go b/internal/fusefrontend/file.go index b192b99..de36a45 100644 --- a/internal/fusefrontend/file.go +++ b/internal/fusefrontend/file.go @@ -398,22 +398,7 @@ func (f *file) GetAttr(a *fuse.Attr) fuse.Status { return fuse.OK } -// BrokenAtime means that atime support is broken. -// TODO drop this once https://github.com/hanwen/go-fuse/pull/131 is -// merged -const BrokenAtime = true - func (f *file) Utimens(a *time.Time, m *time.Time) fuse.Status { - if BrokenAtime { - if m == nil { - tlog.Warn.Printf("refusing to set the atime to prevent a crash in go-fuse") - return fuse.EINVAL - } - // Due to a bug in loopbackFile.Utimens, the "a" value will be used - // to set both mtime and atime. Because mtime is more important, we - // override "a". - a = m - } f.fdLock.RLock() defer f.fdLock.RUnlock() return f.loopbackFile.Utimens(a, m) diff --git a/tests/matrix/matrix_test.go b/tests/matrix/matrix_test.go index 8b80448..1af4a22 100644 --- a/tests/matrix/matrix_test.go +++ b/tests/matrix/matrix_test.go @@ -25,7 +25,6 @@ import ( "testing" "github.com/rfjakob/gocryptfs/internal/cryptocore" - "github.com/rfjakob/gocryptfs/internal/fusefrontend" "github.com/rfjakob/gocryptfs/internal/syscallcompat" "github.com/rfjakob/gocryptfs/tests/test_helpers" ) @@ -686,18 +685,13 @@ func doTestUtimesNano(t *testing.T, path string) { }, { in: [2]syscall.Timespec{{Sec: 7, Nsec: 8}, {Sec: 99, Nsec: _UTIME_OMIT}}, - out: [2]syscall.Timespec{{Sec: 7, Nsec: 8}, {Sec: 5, Nsec: 6}}, + out: [2]syscall.Timespec{{Sec: 7, Nsec: 8}, {Sec: 3, Nsec: 4}}, }, { in: [2]syscall.Timespec{{Sec: 99, Nsec: _UTIME_OMIT}, {Sec: 5, Nsec: 6}}, - out: [2]syscall.Timespec{{Sec: 1, Nsec: 2}, {Sec: 5, Nsec: 6}}, + out: [2]syscall.Timespec{{Sec: 7, Nsec: 8}, {Sec: 5, Nsec: 6}}, }, } - if fusefrontend.BrokenAtime { - // TODO remove this once the pull request is merged: - // https://github.com/hanwen/go-fuse/pull/131 - utimeTestcases = utimeTestcases[:1] - } for i, tc := range utimeTestcases { err := syscall.UtimesNano(path, tc.in[:]) if err != nil {