From: Samuel Just Date: Sat, 26 Oct 2013 00:58:31 +0000 (-0700) Subject: PG,ReplicatedPG: remove the waiting_for_backfill_peer mechanism X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=7406f72f42b81efba692d53b3334b19b9b9abb93;p=ceph.git PG,ReplicatedPG: remove the waiting_for_backfill_peer mechanism See previous patch. Signed-off-by: Samuel Just (cherry picked from commit 6f975e35a1e29a01347e4a6709b54a0422e063dd) The referenced previous patch is actually irrelevant to this backport. Conflicts: src/osd/ReplicatedPG.cc --- diff --git a/src/osd/PG.h b/src/osd/PG.h index d7c06dd42bf..a5cc3fc78bf 100644 --- a/src/osd/PG.h +++ b/src/osd/PG.h @@ -529,7 +529,6 @@ protected: bool flushed; // Ops waiting on backfill_pos to change - list waiting_for_backfill_pos; list waiting_for_active; list waiting_for_all_missing; map > waiting_for_missing_object, diff --git a/src/osd/ReplicatedPG.cc b/src/osd/ReplicatedPG.cc index ee6aa0dbcaf..5a07cfa02d3 100644 --- a/src/osd/ReplicatedPG.cc +++ b/src/osd/ReplicatedPG.cc @@ -186,16 +186,6 @@ void ReplicatedPG::wait_for_degraded_object(const hobject_t& soid, OpRequestRef op->mark_delayed("waiting for degraded object"); } -void ReplicatedPG::wait_for_backfill_pos(OpRequestRef op) -{ - waiting_for_backfill_pos.push_back(op); -} - -void ReplicatedPG::release_waiting_for_backfill_pos() -{ - requeue_ops(waiting_for_backfill_pos); -} - bool PGLSParentFilter::filter(bufferlist& xattr_data, bufferlist& outdata) { bufferlist::iterator iter = xattr_data.begin(); @@ -694,11 +684,6 @@ void ReplicatedPG::do_op(OpRequestRef op) return; } - if (head == backfill_pos) { - wait_for_backfill_pos(op); - return; - } - // missing snapdir? hobject_t snapdir(m->get_oid(), m->get_object_locator().key, CEPH_SNAPDIR, m->get_pg().ps(), info.pgid.pool(), @@ -1348,7 +1333,6 @@ void ReplicatedPG::do_scan( backfill_pos = backfill_info.begin > peer_backfill_info.begin ? peer_backfill_info.begin : backfill_info.begin; - release_waiting_for_backfill_pos(); dout(10) << " backfill_pos now " << backfill_pos << dendl; assert(waiting_on_backfill); @@ -6785,7 +6769,6 @@ void ReplicatedPG::on_change(ObjectStore::Transaction *t) context_registry_on_change(); // requeue object waiters - requeue_ops(waiting_for_backfill_pos); requeue_object_waiters(waiting_for_missing_object); for (map >::iterator p = waiting_for_degraded_object.begin(); p != waiting_for_degraded_object.end(); @@ -7480,7 +7463,6 @@ int ReplicatedPG::recover_backfill( } send_pushes(g_conf->osd_recovery_op_priority, pushes); - release_waiting_for_backfill_pos(); dout(5) << "backfill_pos is " << backfill_pos << " and pinfo.last_backfill is " << pinfo.last_backfill << dendl; for (set::iterator i = backfills_in_flight.begin(); diff --git a/src/osd/ReplicatedPG.h b/src/osd/ReplicatedPG.h index 093f4f8660e..98b3b15a730 100644 --- a/src/osd/ReplicatedPG.h +++ b/src/osd/ReplicatedPG.h @@ -1054,8 +1054,6 @@ public: bool is_missing_object(const hobject_t& oid); void wait_for_missing_object(const hobject_t& oid, OpRequestRef op); void wait_for_all_missing(OpRequestRef op); - void wait_for_backfill_pos(OpRequestRef op); - void release_waiting_for_backfill_pos(); bool is_degraded_object(const hobject_t& oid); void wait_for_degraded_object(const hobject_t& oid, OpRequestRef op);