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/fs.go | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) (limited to 'internal/fusefrontend/fs.go') diff --git a/internal/fusefrontend/fs.go b/internal/fusefrontend/fs.go index 1ef88b7..988a41a 100644 --- a/internal/fusefrontend/fs.go +++ b/internal/fusefrontend/fs.go @@ -208,14 +208,13 @@ func (fs *FS) Mknod(path string, mode uint32, dev uint32, context *fuse.Context) return fs.FileSystem.Mknod(cPath, mode, dev, context) } -var truncateWarned bool +// Only warn once +var truncateWarnOnce sync.Once func (fs *FS) Truncate(path string, offset uint64, context *fuse.Context) (code fuse.Status) { - // Only warn once - if !truncateWarned { + truncateWarnOnce.Do(func() { toggledlog.Warn.Printf("truncate(2) is not supported, returning ENOSYS - use ftruncate(2)") - truncateWarned = true - } + }) return fuse.ENOSYS } -- cgit v1.2.3