some fixes
This commit is contained in:
parent
13a64cecfe
commit
1075b3215c
4 changed files with 24 additions and 7 deletions
|
|
@ -5,6 +5,7 @@ package fs
|
|||
import (
|
||||
"cachefs/pkg/chunk"
|
||||
"cachefs/pkg/provider"
|
||||
"cachefs/pkg/provider/sftp"
|
||||
"context"
|
||||
"encoding/json"
|
||||
"errors"
|
||||
|
|
@ -80,19 +81,20 @@ func MetadataGenerator(file string, dst provider.FS, fstat, encrypted bool) erro
|
|||
return nil
|
||||
}
|
||||
size := fi.Size()
|
||||
path = "/" + strings.TrimPrefix(path, dst.Root())
|
||||
if fstat {
|
||||
blocks, err := dst.Fstat(f.Fd())
|
||||
if err != nil {
|
||||
return nil
|
||||
}
|
||||
if size <= blocks*512 {
|
||||
md[strings.TrimPrefix(path, dst.Root())] = &Metadata{
|
||||
md[path] = &Metadata{
|
||||
Size: size,
|
||||
Chunks: chunk.Chunks{{0, size}},
|
||||
}
|
||||
}
|
||||
} else {
|
||||
md[strings.TrimPrefix(path, dst.Root())] = &Metadata{
|
||||
md[path] = &Metadata{
|
||||
Size: size,
|
||||
Chunks: chunk.Chunks{{0, size}},
|
||||
}
|
||||
|
|
@ -332,7 +334,7 @@ func MapError(err error) error {
|
|||
}
|
||||
|
||||
func IsIOErr(err error) bool {
|
||||
return MapError(err) == IOErr
|
||||
return MapError(err) == IOErr || errors.Is(err, sftp.ErrNotConnected)
|
||||
}
|
||||
|
||||
type Metadata struct {
|
||||
|
|
|
|||
|
|
@ -53,8 +53,12 @@ func NewPreloadHandler(ctx context.Context, fs *FS, max int, log logr.Logger) (p
|
|||
func (ph *PreloadHandler) CancelPreload(name string) {
|
||||
ph.mu.Lock()
|
||||
defer ph.mu.Unlock()
|
||||
if p, ok := ph.pm[name]; ok && p.Running {
|
||||
p.cancel()
|
||||
p, ok := ph.pm[name]
|
||||
if ok {
|
||||
if p.Running {
|
||||
p.cancel()
|
||||
}
|
||||
delete(ph.pm, name)
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue