]> git-server-git.apps.pok.os.sepia.ceph.com Git - ceph.git/commitdiff
osd/PrimaryLogPG: guard lost_delete missing_loc change by feature flag
authorJosh Durgin <jdurgin@redhat.com>
Thu, 13 Jul 2017 23:29:50 +0000 (19:29 -0400)
committerJosh Durgin <jdurgin@redhat.com>
Wed, 19 Jul 2017 06:47:46 +0000 (02:47 -0400)
With deletes during recovery instead of during log processing, we need
to keep the entry in missing_loc.

Signed-off-by: Josh Durgin <jdurgin@redhat.com>
src/osd/PrimaryLogPG.cc

index dd6e4ef852d04d9c82dd5a28ddd7df3288293ae5..797e1b078680405275594252a7338ff444660491 100644 (file)
@@ -10592,8 +10592,15 @@ void PrimaryLogPG::mark_all_unfound_lost(
     std::move(manager),
     boost::optional<std::function<void(void)> >(
       [this, oids, con, num_unfound, tid]() {
-         for (auto oid: oids)
+       if (perform_deletes_during_peering()) {
+         for (auto oid : oids) {
+           // clear old locations - merge_new_log_entries will have
+           // handled rebuilding missing_loc for each of these
+           // objects if we have the RECOVERY_DELETES flag
            missing_loc.recovered(oid);
+         }
+       }
+
        for (auto& p : waiting_for_unreadable_object) {
          release_backoffs(p.first);
        }