possible fix for rare panic

This commit is contained in:
ston1th 2022-10-08 13:45:12 +02:00
commit 88861102fd
4 changed files with 20 additions and 17 deletions

View file

@ -475,9 +475,6 @@ func (md *Metadata) writer() {
}
func (md *Metadata) WriteAt(data []byte, pos int64) (int, error) {
if md.ctx.Err() == context.Canceled {
return 0, context.Canceled
}
err := md.err.Load()
if err != nil && err.err != nil {
return 0, err.err
@ -488,6 +485,9 @@ func (md *Metadata) WriteAt(data []byte, pos int64) (int, error) {
return 0, err
}
}
if md.ctx.Err() == context.Canceled {
return 0, context.Canceled
}
wa := writeAt{pos: pos}
ret := streamingPool.Get()
n := len(data)
@ -507,6 +507,16 @@ func (md *Metadata) WriteAt(data []byte, pos int64) (int, error) {
return n, nil
}
func (md *Metadata) Stat() (os.FileInfo, error) {
if md.f == nil {
err := md.openCacheFile()
if err != nil {
return nil, err
}
}
return md.f.Stat()
}
func (md *Metadata) openCacheFile() error {
md.mu.Lock()
defer md.mu.Unlock()
@ -525,13 +535,3 @@ func (md *Metadata) openCacheFile() error {
md.writer()
return nil
}
func (md *Metadata) Stat() (os.FileInfo, error) {
if md.f == nil {
err := md.openCacheFile()
if err != nil {
return nil, err
}
}
return md.f.Stat()
}