diff --git a/lib/config/folderconfiguration.go b/lib/config/folderconfiguration.go index edc1fd86..d8f8666c 100644 --- a/lib/config/folderconfiguration.go +++ b/lib/config/folderconfiguration.go @@ -282,7 +282,7 @@ func (l FolderDeviceConfigurationList) Len() int { return len(l) } -func (f *FolderConfiguration) CheckFreeSpace() (err error) { +func (f *FolderConfiguration) CheckFreeSpace() error { return checkFreeSpace(f.MinDiskFree, f.Filesystem()) } diff --git a/lib/model/folder_sendrecv.go b/lib/model/folder_sendrecv.go index edb0ea91..cea545f8 100644 --- a/lib/model/folder_sendrecv.go +++ b/lib/model/folder_sendrecv.go @@ -349,18 +349,8 @@ func (f *sendReceiveFolder) processNeeded(ignores *ignore.Matcher, folderFiles * changed++ case file.Type == protocol.FileInfoTypeFile: - // Queue files for processing after directories and symlinks, if - // it has availability. - - devices := folderFiles.Availability(file.Name) - for _, dev := range devices { - if _, ok := f.model.Connection(dev); ok { - f.queue.Push(file.Name, file.Size, file.ModTime()) - changed++ - return true - } - } - f.newError("pull", file.Name, errNotAvailable) + // Queue files for processing after directories and symlinks. + f.queue.Push(file.Name, file.Size, file.ModTime()) case runtime.GOOS == "windows" && file.IsSymlink(): file.SetUnsupported(f.shortID) @@ -492,8 +482,16 @@ nextFile: } } - // Handle the file normally, by coping and pulling, etc. - f.handleFile(fi, copyChan, finisherChan, dbUpdateChan) + devices := folderFiles.Availability(fileName) + for _, dev := range devices { + if _, ok := f.model.Connection(dev); ok { + changed++ + // Handle the file normally, by coping and pulling, etc. + f.handleFile(fi, copyChan, finisherChan, dbUpdateChan) + continue nextFile + } + } + f.newError("pull", fileName, errNotAvailable) } return changed, fileDeletions, dirDeletions, nil