Archived
This removes the out of disk space check from CheckHealth. The disk space is now only checked if there are files to pull, in which case pulling those files is stopped, but everything else (dirs, links, deletes) keeps running -> can recover disk space through pulling.
This commit is contained in:
1 parent
d86d5e8bb2
commit
cb0f4ce55a
6 files changed
+33
-24
No files matched your search
@@ -254,10 +254,6 @@ func (f *folder) getHealthError() error {
|
||||
return err
|
||||
}
|
||||
|
||||
if err := f.CheckFreeSpace(); err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
if err := f.model.cfg.CheckHomeFreeSpace(); err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
@@ -839,9 +839,12 @@ func (f *sendReceiveFolder) renameFile(source, target protocol.FileInfo, dbUpdat
|
||||
l.Debugln(f, "taking rename shortcut", source.Name, "->", target.Name)
|
||||
|
||||
if f.versioner != nil {
|
||||
err = osutil.Copy(f.fs, source.Name, target.Name)
|
||||
err = f.CheckAvailableSpace(source.Size)
|
||||
if err == nil {
|
||||
err = osutil.InWritableDir(f.versioner.Archive, f.fs, source.Name)
|
||||
err = osutil.Copy(f.fs, source.Name, target.Name)
|
||||
if err == nil {
|
||||
err = osutil.InWritableDir(f.versioner.Archive, f.fs, source.Name)
|
||||
}
|
||||
}
|
||||
} else {
|
||||
err = osutil.TryRename(f.fs, source.Name, target.Name)
|
||||
@@ -1003,12 +1006,9 @@ func (f *sendReceiveFolder) handleFile(file protocol.FileInfo, copyChan chan<- c
|
||||
blocksSize = file.Size
|
||||
}
|
||||
|
||||
if f.MinDiskFree.BaseValue() > 0 {
|
||||
if usage, err := f.fs.Usage("."); err == nil && usage.Free < blocksSize {
|
||||
l.Warnf(`Folder "%s": insufficient disk space in %s for %s: have %.2f MiB, need %.2f MiB`, f.folderID, f.fs.URI(), file.Name, float64(usage.Free)/1024/1024, float64(blocksSize)/1024/1024)
|
||||
f.newError("disk space", file.Name, errors.New("insufficient space"))
|
||||
return
|
||||
}
|
||||
if err := f.CheckAvailableSpace(blocksSize); err != nil {
|
||||
f.newError("pulling file", file.Name, err)
|
||||
return
|
||||
}
|
||||
|
||||
// Shuffle the blocks
|
||||
|
||||
@@ -91,15 +91,17 @@ func setUpSendReceiveFolder(model *Model) *sendReceiveFolder {
|
||||
initialScanFinished: make(chan struct{}),
|
||||
ctx: context.TODO(),
|
||||
FolderConfiguration: config.FolderConfiguration{
|
||||
FilesystemType: fs.FilesystemTypeBasic,
|
||||
Path: "testdata",
|
||||
PullerMaxPendingKiB: defaultPullerPendingKiB,
|
||||
},
|
||||
},
|
||||
|
||||
fs: fs.NewMtimeFS(fs.NewFilesystem(fs.FilesystemTypeBasic, "testdata"), db.NewNamespacedKV(model.db, "mtime")),
|
||||
queue: newJobQueue(),
|
||||
errors: make(map[string]string),
|
||||
errorsMut: sync.NewMutex(),
|
||||
}
|
||||
f.fs = fs.NewMtimeFS(f.Filesystem(), db.NewNamespacedKV(model.db, "mtime"))
|
||||
|
||||
// Folders are never actually started, so no initial scan will be done
|
||||
close(f.initialScanFinished)
|
||||
|
||||
Reference in new issue
Block a user