From 1648c54adb9b7d9d8984857a35c6092bbae6bdec Mon Sep 17 00:00:00 2001 From: Jakob Unterwurzacher Date: Sun, 29 May 2016 22:50:03 +0200 Subject: fusefrontend: use sync.Once for one-time warnings Using a simple boolean was racy (which was harmless in this case) and non-idomatic. --- internal/fusefrontend/file.go | 11 +++++------ 1 file changed, 5 insertions(+), 6 deletions(-) (limited to 'internal/fusefrontend/file.go') diff --git a/internal/fusefrontend/file.go b/internal/fusefrontend/file.go index 33afcb9..e374956 100644 --- a/internal/fusefrontend/file.go +++ b/internal/fusefrontend/file.go @@ -472,15 +472,14 @@ func (f *file) GetAttr(a *fuse.Attr) fuse.Status { return fuse.OK } -// Allocate - FUSE call, fallocate(2) -var allocateWarned bool +// Only warn once +var allocateWarnOnce sync.Once +// Allocate - FUSE call, fallocate(2) func (f *file) Allocate(off uint64, sz uint64, mode uint32) fuse.Status { - // Only warn once - if !allocateWarned { + allocateWarnOnce.Do(func() { toggledlog.Warn.Printf("fallocate(2) is not supported, returning ENOSYS - see https://github.com/rfjakob/gocryptfs/issues/1") - allocateWarned = true - } + }) return fuse.ENOSYS } -- cgit v1.2.3