removed debug logging
This commit is contained in:
parent
ba77ab6d7a
commit
10512e5738
3 changed files with 36 additions and 44 deletions
8
TODO.txt
8
TODO.txt
|
|
@ -1,8 +1,2 @@
|
||||||
* fix deadlock
|
* document openbsd pcap wireshark fix
|
||||||
* maybe dirEmpty?
|
|
||||||
|
|
||||||
* NFS proxy?
|
|
||||||
* printf '\x6c' | dd seek=20 bs=1 count=1 conv=notrunc of=test.dump
|
* printf '\x6c' | dd seek=20 bs=1 count=1 conv=notrunc of=test.dump
|
||||||
|
|
||||||
sFault := uint32(10006)
|
|
||||||
noEnt := uint32(2)
|
|
||||||
|
|
|
||||||
64
pkg/fs/fs.go
64
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) {
|
func (fs *FS) StatWithOffline(name string) (fi stdfs.FileInfo, offline bool, err error) {
|
||||||
sp, dp := fs.paths(name)
|
sp, dp := fs.paths(name)
|
||||||
fi, err = os.Stat(sp)
|
fi, err = os.Stat(sp)
|
||||||
if errors.Is(err, os.ErrNotExist) {
|
if err == nil {
|
||||||
fi, err = os.Stat(dp)
|
|
||||||
if err != nil {
|
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
fi, err = os.Stat(dp)
|
||||||
offline = true
|
offline = true
|
||||||
}
|
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -171,47 +169,51 @@ func (fs *FS) paths(name string) (sp string, dp string) {
|
||||||
return
|
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) {
|
func (fs *FS) Open(name string) (f http.File, err error) {
|
||||||
log := fs.log.WithValues("file", name)
|
log := fs.log.WithValues("file", name)
|
||||||
sp, dp := fs.paths(name)
|
sp, dp := fs.paths(name)
|
||||||
offline := false
|
file, fi, offline, err := fs.open(name, sp, dp)
|
||||||
sf, err := os.Open(sp)
|
|
||||||
if err != nil {
|
|
||||||
if errors.Is(err, os.ErrNotExist) {
|
|
||||||
sf, err = os.Open(dp)
|
|
||||||
if err != nil {
|
if err != nil {
|
||||||
if !skipLog(name) {
|
if !skipLog(name) {
|
||||||
log.Error(err, "error opening source file")
|
log.Error(err, "error opening source file")
|
||||||
}
|
}
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
offline = true
|
if fi.IsDir() {
|
||||||
log.V(2).Info("file offline mode", "path", dp)
|
if offline {
|
||||||
} else {
|
|
||||||
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
|
|
||||||
log.V(2).Info("dir offline mode", "path", dp)
|
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
|
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{
|
f = &File{
|
||||||
log: log,
|
log: log,
|
||||||
f: sf,
|
f: file,
|
||||||
md: md,
|
md: md,
|
||||||
offline: offline,
|
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) {
|
func (fs *FS) metadata(name string, size int64) (md *Metadata) {
|
||||||
fs.mu.Lock()
|
fs.mu.Lock()
|
||||||
fs.log.Info("fs.mu.Lock()")
|
|
||||||
defer fs.mu.Unlock()
|
defer fs.mu.Unlock()
|
||||||
defer fs.log.Info("fs.mu.Unlock()")
|
|
||||||
if md, ok := fs.md[name]; ok {
|
if md, ok := fs.md[name]; ok {
|
||||||
if size > 0 && md.Size != size {
|
if size > 0 && md.Size != size {
|
||||||
log := fs.log.WithValues("file", name)
|
log := fs.log.WithValues("file", name)
|
||||||
|
|
|
||||||
|
|
@ -39,10 +39,8 @@ func (q *Quota) cleanup() {
|
||||||
if !q.fs.mu.TryLock() {
|
if !q.fs.mu.TryLock() {
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
q.log.Info("!q.fs.mu.TryLock()")
|
|
||||||
q.log.Info("quota usage", "current", q.cur, "max", q.max)
|
q.log.Info("quota usage", "current", q.cur, "max", q.max)
|
||||||
defer q.fs.mu.Unlock()
|
defer q.fs.mu.Unlock()
|
||||||
defer q.log.Info("q.fs.mu.Unlock()")
|
|
||||||
atime := int64(math.MaxInt64)
|
atime := int64(math.MaxInt64)
|
||||||
var m *Metadata
|
var m *Metadata
|
||||||
for _, v := range q.fs.md {
|
for _, v := range q.fs.md {
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue