mirror of
https://github.com/octoleo/syncthing.git
synced 2024-11-14 01:04:14 +00:00
Handle weird Lstat() returns for disappeared items (ref #1373)
This commit is contained in:
parent
af5c36d2a8
commit
c25107eff3
@ -1242,8 +1242,16 @@ func (m *Model) ScanFolderSub(folder, sub string) error {
|
|||||||
"size": f.Size(),
|
"size": f.Size(),
|
||||||
})
|
})
|
||||||
batch = append(batch, nf)
|
batch = append(batch, nf)
|
||||||
} else if _, err := os.Lstat(filepath.Join(folderCfg.Path, f.Name)); err != nil && os.IsNotExist(err) {
|
} else if _, err := os.Lstat(filepath.Join(folderCfg.Path, f.Name)); err != nil {
|
||||||
// File has been deleted
|
// File has been deleted.
|
||||||
|
|
||||||
|
// We don't specifically verify that the error is
|
||||||
|
// os.IsNotExist because there is a corner case when a
|
||||||
|
// directory is suddenly transformed into a file. When that
|
||||||
|
// happens, files that were in the directory (that is now a
|
||||||
|
// file) are deleted but will return a confusing error ("not a
|
||||||
|
// directory") when we try to Lstat() them.
|
||||||
|
|
||||||
nf := protocol.FileInfo{
|
nf := protocol.FileInfo{
|
||||||
Name: f.Name,
|
Name: f.Name,
|
||||||
Flags: f.Flags | protocol.FlagDeleted,
|
Flags: f.Flags | protocol.FlagDeleted,
|
||||||
|
Loading…
Reference in New Issue
Block a user