From 10512e57386137bf5c197170f1a4f4beabbbcce1 Mon Sep 17 00:00:00 2001 From: ston1th Date: Sat, 19 Mar 2022 15:49:04 +0100 Subject: [PATCH] removed debug logging --- TODO.txt | 8 +----- pkg/fs/fs.go | 70 ++++++++++++++++++++++++------------------------- pkg/fs/quota.go | 2 -- 3 files changed, 36 insertions(+), 44 deletions(-) diff --git a/TODO.txt b/TODO.txt index f8fa8e9..2dfc15a 100644 --- a/TODO.txt +++ b/TODO.txt @@ -1,8 +1,2 @@ -* fix deadlock - * maybe dirEmpty? - -* NFS proxy? +* document openbsd pcap wireshark fix * printf '\x6c' | dd seek=20 bs=1 count=1 conv=notrunc of=test.dump - -sFault := uint32(10006) -noEnt := uint32(2) diff --git a/pkg/fs/fs.go b/pkg/fs/fs.go index 102e92b..e9d832d 100644 --- a/pkg/fs/fs.go +++ b/pkg/fs/fs.go @@ -111,13 +111,11 @@ func (fs *FS) Stat(name string) (fi stdfs.FileInfo, err error) { func (fs *FS) StatWithOffline(name string) (fi stdfs.FileInfo, offline bool, err error) { sp, dp := fs.paths(name) fi, err = os.Stat(sp) - if errors.Is(err, os.ErrNotExist) { - fi, err = os.Stat(dp) - if err != nil { - return - } - offline = true + if err == nil { + return } + fi, err = os.Stat(dp) + offline = true return } @@ -171,47 +169,51 @@ func (fs *FS) paths(name string) (sp string, dp string) { return } +func (fs *FS) open(name, sp, dp string) (f *os.File, fi os.FileInfo, offline bool, err error) { + f, err = os.Open(sp) + if err == nil { + fi, err = f.Stat() + if err == nil { + return + } + f.Close() + } + f, err = os.Open(dp) + if err != nil { + return + } + fi, err = f.Stat() + if err != nil { + f.Close() + } + offline = true + return +} + func (fs *FS) Open(name string) (f http.File, err error) { log := fs.log.WithValues("file", name) sp, dp := fs.paths(name) - offline := false - sf, err := os.Open(sp) + file, fi, offline, err := fs.open(name, sp, dp) if err != nil { - if errors.Is(err, os.ErrNotExist) { - sf, err = os.Open(dp) - if err != nil { - if !skipLog(name) { - log.Error(err, "error opening source file") - } - return - } - offline = true - log.V(2).Info("file offline mode", "path", dp) - } else { + if !skipLog(name) { log.Error(err, "error opening source file") - return } - } - sfi, err := sf.Stat() - if err != nil { - sf.Close() - log.Error(err, "error stat source file") return } - if sfi.IsDir() { - if empty, e := dirEmpty(sf.Name()); empty && e == nil { - sf.Close() - sf, err = os.Open(dp) - offline = true + if fi.IsDir() { + if offline { log.V(2).Info("dir offline mode", "path", dp) } - f = &Dir{log: log.WithName("dir"), f: sf, dc: fs.dc} + f = &Dir{log: log.WithName("dir"), f: file, dc: fs.dc} return } - md := fs.metadata(name, sfi.Size()) + if offline { + log.V(2).Info("file offline mode", "path", dp) + } + md := fs.metadata(name, fi.Size()) f = &File{ log: log, - f: sf, + f: file, md: md, offline: offline, } @@ -256,9 +258,7 @@ func (fs *FS) openCacheFile(name string, size int64) (df *os.File, err error) { func (fs *FS) metadata(name string, size int64) (md *Metadata) { fs.mu.Lock() - fs.log.Info("fs.mu.Lock()") defer fs.mu.Unlock() - defer fs.log.Info("fs.mu.Unlock()") if md, ok := fs.md[name]; ok { if size > 0 && md.Size != size { log := fs.log.WithValues("file", name) diff --git a/pkg/fs/quota.go b/pkg/fs/quota.go index c8f7bfa..ae16b80 100644 --- a/pkg/fs/quota.go +++ b/pkg/fs/quota.go @@ -39,10 +39,8 @@ func (q *Quota) cleanup() { if !q.fs.mu.TryLock() { return } - q.log.Info("!q.fs.mu.TryLock()") q.log.Info("quota usage", "current", q.cur, "max", q.max) defer q.fs.mu.Unlock() - defer q.log.Info("q.fs.mu.Unlock()") atime := int64(math.MaxInt64) var m *Metadata for _, v := range q.fs.md {