From 6b17a7110cfac2c67c6337f008f5adc661fa8fb8 Mon Sep 17 00:00:00 2001 From: Michael Eischer Date: Thu, 30 Dec 2021 15:32:42 +0100 Subject: [PATCH] backup: Set O_NOATIME in the right place The archiver uses FS.OpenFile, where FS is an instance of the FS interface. This is different from fs.OpenFile, which uses the OpenFile method provided by the fs package. --- internal/fs/file.go | 14 ++------------ internal/fs/fs_local.go | 2 ++ 2 files changed, 4 insertions(+), 12 deletions(-) diff --git a/internal/fs/file.go b/internal/fs/file.go index a7c2b8886..e8e9080d7 100644 --- a/internal/fs/file.go +++ b/internal/fs/file.go @@ -85,12 +85,7 @@ func Create(name string) (*os.File, error) { // Open opens a file for reading. func Open(name string) (File, error) { - f, err := os.Open(fixpath(name)) - if err != nil { - return nil, err - } - setFlags(f) - return f, err + return os.Open(fixpath(name)) } // OpenFile is the generalized open call; most users will use Open @@ -99,12 +94,7 @@ func Open(name string) (File, error) { // methods on the returned File can be used for I/O. // If there is an error, it will be of type *PathError. func OpenFile(name string, flag int, perm os.FileMode) (*os.File, error) { - f, err := os.OpenFile(fixpath(name), flag, perm) - if err != nil { - return nil, err - } - setFlags(f) - return f, err + return os.OpenFile(fixpath(name), flag, perm) } // Walk walks the file tree rooted at root, calling walkFn for each file or diff --git a/internal/fs/fs_local.go b/internal/fs/fs_local.go index dd1faafa0..48c40dc90 100644 --- a/internal/fs/fs_local.go +++ b/internal/fs/fs_local.go @@ -24,6 +24,7 @@ func (fs Local) Open(name string) (File, error) { if err != nil { return nil, err } + _ = setFlags(f) return f, nil } @@ -37,6 +38,7 @@ func (fs Local) OpenFile(name string, flag int, perm os.FileMode) (File, error) if err != nil { return nil, err } + _ = setFlags(f) return f, nil }