Allow fractional percentages (fixes #2233)

This commit is contained in:
Jakob Borg
2015-09-05 09:43:07 +02:00
parent d2af6dcf38
commit 2af3a92833
7 changed files with 24 additions and 18 deletions

View File

@@ -1711,7 +1711,7 @@ func (m *Model) BringToFront(folder, file string) {
// CheckFolderHealth checks the folder for common errors and returns the
// current folder error, or nil if the folder is healthy.
func (m *Model) CheckFolderHealth(id string) error {
if minFree := float64(m.cfg.Options().MinHomeDiskFreePct); minFree > 0 {
if minFree := m.cfg.Options().MinHomeDiskFreePct; minFree > 0 {
if free, err := osutil.DiskFreePercentage(m.cfg.ConfigPath()); err == nil && free < minFree {
return errors.New("home disk is out of space")
}
@@ -1732,7 +1732,7 @@ func (m *Model) CheckFolderHealth(id string) error {
err = errors.New("folder path missing")
} else if !folder.HasMarker() {
err = errors.New("folder marker missing")
} else if free, errDfp := osutil.DiskFreePercentage(folder.Path()); errDfp == nil && free < float64(folder.MinDiskFreePct) {
} else if free, errDfp := osutil.DiskFreePercentage(folder.Path()); errDfp == nil && free < folder.MinDiskFreePct {
err = errors.New("out of disk space")
}
} else if os.IsNotExist(err) {

View File

@@ -508,14 +508,13 @@ func (p *rwFolder) pullerIteration(ignores *ignore.Matcher) int {
return true
})
// Check if we are able to store all files on disk
if pullFileSize > 0 {
folder, ok := p.model.cfg.Folders()[p.folder]
if ok {
if free, err := osutil.DiskFreeBytes(folder.Path()); err == nil && free < pullFileSize {
l.Infof("Puller (folder %q): insufficient disk space available to pull %d files (%.2fMB)", p.folder, changed, float64(pullFileSize)/1024/1024)
return 0
}
// Check if we are able to store all files on disk. Only perform this
// check if there is a minimum free space threshold set on the folder.
folderCfg := p.model.cfg.Folders()[p.folder]
if folderCfg.MinDiskFreePct > 0 || pullFileSize > 0 {
if free, err := osutil.DiskFreeBytes(folderCfg.Path()); err == nil && free < pullFileSize {
l.Warnf(`Folder "%s": insufficient disk space available to pull %d files (%.2f MiB)`, p.folder, changed, float64(pullFileSize)/1024/1024)
return 0
}
}