lib/model: Cleanup redundant filesystem variables in folders (#7237)

This commit is contained in:
Simon Frei
2020-12-27 22:26:25 +01:00
committed by GitHub
parent 5440d1dc3b
commit a05dc6cc47
7 changed files with 79 additions and 83 deletions
+9 -8
View File
@@ -45,6 +45,7 @@ type folder struct {
shortID protocol.ShortID
fset *db.FileSet
ignores *ignore.Matcher
mtimefs fs.Filesystem
modTimeWindow time.Duration
ctx context.Context // used internally, only accessible on serve lifetime
done chan struct{} // used externally, accessible regardless of serve
@@ -100,6 +101,7 @@ func newFolder(model *model, fset *db.FileSet, ignores *ignore.Matcher, cfg conf
shortID: model.shortID,
fset: fset,
ignores: ignores,
mtimefs: fset.MtimeFS(),
modTimeWindow: cfg.ModTimeWindow(),
done: make(chan struct{}),
@@ -457,7 +459,6 @@ func (f *folder) scanSubdirs(subDirs []string) error {
// to be cancelled.
scanCtx, scanCancel := context.WithCancel(f.ctx)
defer scanCancel()
mtimefs := f.fset.MtimeFS()
scanConfig := scanner.Config{
Folder: f.ID,
@@ -465,7 +466,7 @@ func (f *folder) scanSubdirs(subDirs []string) error {
Matcher: f.ignores,
TempLifetime: time.Duration(f.model.cfg.Options().KeepTemporariesH) * time.Hour,
CurrentFiler: cFiler{snap},
Filesystem: mtimefs,
Filesystem: f.mtimefs,
IgnorePerms: f.IgnorePerms,
AutoNormalize: f.AutoNormalize,
Hashers: f.model.numHashers(f.ID),
@@ -530,8 +531,8 @@ func (f *folder) scanSubdirs(subDirs []string) error {
// We don't track it, but check if anything still exists
// within and delete it otherwise.
if fi.IsDirectory() && protocol.IsEncryptedParent(fi.Name) {
if names, err := mtimefs.DirNames(fi.Name); err == nil && len(names) == 0 {
mtimefs.Remove(fi.Name)
if names, err := f.mtimefs.DirNames(fi.Name); err == nil && len(names) == 0 {
f.mtimefs.Remove(fi.Name)
}
changes--
return
@@ -570,7 +571,7 @@ func (f *folder) scanSubdirs(subDirs []string) error {
switch f.Type {
case config.FolderTypeReceiveOnly, config.FolderTypeReceiveEncrypted:
default:
if nf, ok := f.findRename(snap, mtimefs, res.File, alreadyUsed); ok {
if nf, ok := f.findRename(snap, res.File, alreadyUsed); ok {
batchAppend(nf, snap)
changes++
}
@@ -658,7 +659,7 @@ func (f *folder) scanSubdirs(subDirs []string) error {
// it's still here. Simply stat:ing it wont do as there are
// tons of corner cases (e.g. parent dir->symlink, missing
// permissions)
if !osutil.IsDeleted(mtimefs, file.Name) {
if !osutil.IsDeleted(f.mtimefs, file.Name) {
if ignoredParent != "" {
// Don't ignore parents of this not ignored item
toIgnore = toIgnore[:0]
@@ -727,7 +728,7 @@ func (f *folder) scanSubdirs(subDirs []string) error {
return nil
}
func (f *folder) findRename(snap *db.Snapshot, mtimefs fs.Filesystem, file protocol.FileInfo, alreadyUsed map[string]struct{}) (protocol.FileInfo, bool) {
func (f *folder) findRename(snap *db.Snapshot, file protocol.FileInfo, alreadyUsed map[string]struct{}) (protocol.FileInfo, bool) {
if len(file.Blocks) == 0 || file.Size == 0 {
return protocol.FileInfo{}, false
}
@@ -763,7 +764,7 @@ func (f *folder) findRename(snap *db.Snapshot, mtimefs fs.Filesystem, file proto
return true
}
if !osutil.IsDeleted(mtimefs, fi.Name) {
if !osutil.IsDeleted(f.mtimefs, fi.Name) {
return true
}