]> git-server-git.apps.pok.os.sepia.ceph.com Git - ceph.git/commitdiff
osd/PG.cc: account for missing set irrespective of last_complete 26175/head
authorNeha Ojha <nojha@redhat.com>
Thu, 24 Jan 2019 20:46:49 +0000 (12:46 -0800)
committerNeha Ojha <nojha@redhat.com>
Thu, 24 Jan 2019 20:46:49 +0000 (12:46 -0800)
When adding source info from another OSD, check if an object that needs
recovery is present in its missing set. If yes, do not include the OSD
as a missing loc.

Fixes: http://tracker.ceph.com/issues/37919
Signed-off-by: Neha Ojha <nojha@redhat.com>
src/osd/PG.cc

index bac79a1cbbfffeccf1f8ff169fc8925a01a825c0..8f19050a5e7b87244c07c571d9334131c47289f4 100644 (file)
@@ -697,12 +697,10 @@ bool PG::MissingLoc::add_source_info(
                         << ")" << dendl;
       continue;
     }
-    if (oinfo.last_complete < need) {
-      if (omissing.is_missing(soid)) {
-       ldout(pg->cct, 10) << "search_for_missing " << soid << " " << need
-                          << " also missing on osd." << fromosd << dendl;
-       continue;
-      }
+    if (omissing.is_missing(soid)) {
+      ldout(pg->cct, 10) << "search_for_missing " << soid << " " << need
+                        << " also missing on osd." << fromosd << dendl;
+      continue;
     }
 
     ldout(pg->cct, 10) << "search_for_missing " << soid << " " << need