Factor out common code in inode manager

This commit is contained in:
Marcus Holland-Moritz 2023-08-19 10:52:42 +02:00
parent 03da4120e5
commit 802f876f6e

View File

@ -530,6 +530,14 @@ class inode_manager_ final : public inode_manager::impl {
ordered_span(fragment_category cat, worker_group& wg) const override; ordered_span(fragment_category cat, worker_group& wg) const override;
private: private:
void update_prog(std::shared_ptr<inode> const& ino, file const* p) const {
if (p->size() > 0) {
prog_.fragments_found += ino->fragments().size();
}
++prog_.inodes_scanned;
++prog_.files_scanned;
}
static bool inodes_need_scanning(inode_options const& opts) { static bool inodes_need_scanning(inode_options const& opts) {
if (opts.categorizer_mgr) { if (opts.categorizer_mgr) {
return true; return true;
@ -566,17 +574,13 @@ void inode_manager_<LoggerPolicy>::scan_background(worker_group& wg,
mm = os.map_file(p->fs_path(), size); mm = os.map_file(p->fs_path(), size);
} }
ino->scan(mm.get(), opts_); ino->scan(mm.get(), opts_);
prog_.fragments_found += ino->fragments().size();
++prog_.similarity_scans; // TODO: we probably don't want this here ++prog_.similarity_scans; // TODO: we probably don't want this here
prog_.similarity_bytes += size; prog_.similarity_bytes += size;
++prog_.inodes_scanned; update_prog(ino, p);
++prog_.files_scanned;
}); });
} else { } else {
ino->populate(p->size()); ino->populate(p->size());
prog_.fragments_found += ino->fragments().size(); update_prog(ino, p);
++prog_.inodes_scanned;
++prog_.files_scanned;
} }
} }