subfile.analyze_new_block(block_buf, bytes);
refs = subfile.create_incremental(tss, o, block_age);
} else {
+ if (flag_rebuild_statcache && ref.is_normal()) {
+ subfile.analyze_new_block(block_buf, bytes);
+ subfile.store_analyzed_signatures(ref);
+ }
refs.push_back(ref);
}
// the checksum in the statcache. If not, we have possible disk corruption
// and report a warning.
if (flag_rebuild_statcache) {
- if (found && file_info["checksum"] != metawriter->get_checksum()) {
+ if (found
+ && metawriter->is_unchanged(&stat_buf)
+ && file_info["checksum"] != metawriter->get_checksum()) {
fprintf(stderr,
"Warning: Checksum for %s does not match expected value\n"
" expected: %s\n"
" --intent=FLOAT intended backup type: 1=daily, 7=weekly, ...\n"
" (defaults to \"1\")\n"
" --full-metadata do not re-use metadata from previous backups\n"
+ " --rebuild-statcache re-read all file data to verify statcache\n"
" -v --verbose list files as they are backed up\n"
"\n"
"Exactly one of --dest or --upload-script must be specified.\n",