<< "(" << path << "), rewriting it";
in->_mark_dirty_parent(in->mdcache->mds->mdlog->get_current_segment(),
false);
+ results->backtrace.repaired = true;
}
// If the inode's number was free in the InoTable, fix that
*/
struct validated_data {
template<typename T>struct member_status {
- bool checked;
- bool passed;
- int ondisk_read_retval;
+ bool checked = false;
+ bool passed = false;
+ bool repaired = false;
+ int ondisk_read_retval = 0;
T ondisk_value;
T memory_value;
std::stringstream error_str;
- member_status() : checked(false), passed(false),
- ondisk_read_retval(0) {}
};
bool performed_validation;
in->make_path_string(path, true);
}
- if (result.backtrace.checked && !result.backtrace.passed) {
+ if (result.backtrace.checked && !result.backtrace.passed
+ && !result.backtrace.repaired)
+ {
// Record backtrace fails as remote linkage damage, as
// we may not be able to resolve hard links to this inode
mdcache->mds->damage_table.notify_remote_damaged(in->inode.ino, path);