]> git.apps.os.sepia.ceph.com Git - ceph.git/commitdiff
mds: don't mark primary dentry damaged if inode has been repaired
authorYan, Zheng <zyan@redhat.com>
Wed, 18 Apr 2018 10:49:59 +0000 (18:49 +0800)
committerYan, Zheng <zyan@redhat.com>
Thu, 19 Apr 2018 04:56:38 +0000 (12:56 +0800)
Signed-off-by: "Yan, Zheng" <zyan@redhat.com>
src/mds/ScrubStack.cc

index 59bab3387894054ddec4ce719bcfe1a2697d42e7..05fd1eb2f2c3b89f541448c14f87d2846c64ce55 100644 (file)
@@ -377,13 +377,14 @@ void ScrubStack::_validate_inode_done(CInode *in, int r,
     in->make_path_string(path, true);
   }
 
-  if (result.backtrace.checked && !result.backtrace.passed
-      && !result.backtrace.repaired)
+  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);
-  } else if (result.inode.checked && !result.inode.passed) {
+  } else if (result.inode.checked && !result.inode.passed &&
+             !result.inode.repaired) {
     // Record damaged inode structures as damaged dentries as
     // that is where they are stored
     auto parent = in->get_projected_parent_dn();