diff options
author | Daniel Milde <daniel@milde.cz> | 2021-02-16 20:14:24 +0100 |
---|---|---|
committer | Daniel Milde <daniel@milde.cz> | 2021-02-16 20:16:54 +0100 |
commit | 3d47ab68dd0743df1287f6953e5c297f9d8b7a5f (patch) | |
tree | 5d30d93960edc8b7e8cbf31967efa0cef1d352e0 | |
parent | 629c9ccc484d9085421792eb5efbc1fa94054747 (diff) |
fixed data race in flag propagationv4.6.2
-rw-r--r-- | analyze/dir.go | 9 | ||||
-rw-r--r-- | analyze/file.go | 7 |
2 files changed, 7 insertions, 9 deletions
diff --git a/analyze/dir.go b/analyze/dir.go index b363285..865bb0c 100644 --- a/analyze/dir.go +++ b/analyze/dir.go @@ -87,16 +87,7 @@ func processDir(path string, progress *CurrentProgress, concurrencyLimitChannel subdir.Parent = &dir mutex.Lock() - dir.Files = append(dir.Files, subdir) - - switch subdir.Flag { - case '!', '.': - if dir.Flag != '!' { - dir.Flag = '.' - } - } - mutex.Unlock() <-concurrencyLimitChannel diff --git a/analyze/file.go b/analyze/file.go index e6f1ecf..3c9b80b 100644 --- a/analyze/file.go +++ b/analyze/file.go @@ -66,6 +66,13 @@ func (f *File) UpdateStats(links AlreadyCountedHardlinks) { entry.UpdateStats(links) } + switch entry.Flag { + case '!', '.': + if f.Flag != '!' { + f.Flag = '.' + } + } + itemCount += entry.ItemCount if entry.MutliLinkInode > 0 { |