From 3160ef2c0a66324621a95926bed0416bbd537353 Mon Sep 17 00:00:00 2001 From: John Spray Date: Wed, 25 Oct 2017 09:39:15 -0400 Subject: [PATCH] mds: clean up clog damage message when repairing If we've repaired then we don't need to be at WRN and we don't need to advise the user to look up the damage detail. Signed-off-by: John Spray --- src/mds/CInode.cc | 14 ++++++++++++++ src/mds/CInode.h | 2 ++ src/mds/ScrubStack.cc | 11 ++++++++--- 3 files changed, 24 insertions(+), 3 deletions(-) diff --git a/src/mds/CInode.cc b/src/mds/CInode.cc index f12600b8afc..82c7a9ff2e4 100644 --- a/src/mds/CInode.cc +++ b/src/mds/CInode.cc @@ -4098,6 +4098,7 @@ next: dir->scrub_infop->pending_scrub_error) { dir->scrub_infop->pending_scrub_error = false; if (dir->scrub_infop->header->get_repair()) { + results->raw_stats.repaired = true; results->raw_stats.error_str << "dirfrag(" << p->first << ") has bad stats (will be fixed); "; } else { @@ -4116,6 +4117,7 @@ next: results->raw_stats.error_str << "freshly-calculated rstats don't match existing ones (will be fixed)"; in->mdcache->repair_inode_stats(in); + results->raw_stats.repaired = true; } else { results->raw_stats.error_str << "freshly-calculated rstats don't match existing ones"; @@ -4190,6 +4192,18 @@ void CInode::validated_data::dump(Formatter *f) const f->close_section(); // results } +bool CInode::validated_data::all_damage_repaired() const +{ + bool unrepaired = + (raw_stats.checked && !raw_stats.passed && !raw_stats.repaired) + || + (backtrace.checked && !backtrace.passed && !backtrace.repaired) + || + (inode.checked && !inode.passed && !inode.repaired); + + return !unrepaired; +} + void CInode::dump(Formatter *f) const { InodeStoreBase::dump(f); diff --git a/src/mds/CInode.h b/src/mds/CInode.h index 364f42a516c..01c942c9cf5 100644 --- a/src/mds/CInode.h +++ b/src/mds/CInode.h @@ -1141,6 +1141,8 @@ public: passed_validation(false) {} void dump(Formatter *f) const; + + bool all_damage_repaired() const; }; /** diff --git a/src/mds/ScrubStack.cc b/src/mds/ScrubStack.cc index 83ae53abe33..cb31a93f0fd 100644 --- a/src/mds/ScrubStack.cc +++ b/src/mds/ScrubStack.cc @@ -396,9 +396,14 @@ void ScrubStack::_validate_inode_done(CInode *in, int r, // Inform the cluster log if we found an error if (!result.passed_validation) { - clog->warn() << "Scrub error on inode " << in->ino() - << " (" << path << ") see " << g_conf->name - << " log and `damage ls` output for details"; + if (result.all_damage_repaired()) { + clog->info() << "Scrub repaired inode " << in->ino() + << " (" << path << ")"; + } else { + clog->warn() << "Scrub error on inode " << in->ino() + << " (" << path << ") see " << g_conf->name + << " log and `damage ls` output for details"; + } // Put the verbose JSON output into the MDS log for later inspection JSONFormatter f; -- 2.47.3