From 55ebeb05eb7883f9eb09976ebfe0f8ea7718e933 Mon Sep 17 00:00:00 2001 From: Zygo Blaxell Date: Fri, 8 Jan 2010 09:16:02 -0500 Subject: [PATCH] dupemerge: don't stat during the file collection loop Remove the lstat from the find output reading loop. It's a redundant copy of the same code in merge_files. Adjust merge_files to filter out possible non-files that will now leak through from the find output. --- faster-dupemerge | 11 +++-------- 1 file changed, 3 insertions(+), 8 deletions(-) diff --git a/faster-dupemerge b/faster-dupemerge index 91138c8..aa8b142 100755 --- a/faster-dupemerge +++ b/faster-dupemerge @@ -340,10 +340,11 @@ hash_file: print STDERR "\t\tDigesting file $filename\n" if $debug; if ((-l $filename) || ! -f _) { warn "Bogon file " . tick_quote($filename); - $surprises++; + $input_bogons++; + delete $inode_to_file_name{$candidate}->{$filename}; next; } - eval { + eval { $digest = digest($filename); }; if ($@) { @@ -578,12 +579,6 @@ while () { print STDERR "weak_key=$weak_key inode=$inode name=$name\n" if $debug; - unless (! (-l $name) && (-f _)) { - warn "Bogon file " . tick_quote($name); - $input_bogons++; - next; - } - $input_links++; merge_files if $weak_key ne $current_key; $current_key = $weak_key; -- 2.30.2