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-Tag: v0.72-rc1~10^2~4 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=6f975e35a1e29a01347e4a6709b54a0422e063dd;p=ceph.git PG,ReplicatedPG: remove the waiting_for_backfill_peer mechanism See previous patch. Signed-off-by: Samuel Just --- diff --git a/src/osd/PG.h b/src/osd/PG.h index 9f982167c91b..e26d2f487fbc 100644 --- a/src/osd/PG.h +++ b/src/osd/PG.h @@ -522,7 +522,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 83ecc3b0dd3d..899b638ee664 100644 --- a/src/osd/ReplicatedPG.cc +++ b/src/osd/ReplicatedPG.cc @@ -361,16 +361,6 @@ void ReplicatedPG::wait_for_blocked_object(const hobject_t& soid, OpRequestRef o op->mark_delayed("waiting for blocked 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(); @@ -917,11 +907,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(), @@ -1604,7 +1589,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); @@ -7377,10 +7361,8 @@ void ReplicatedPG::on_change(ObjectStore::Transaction *t) // requeue object waiters if (is_primary()) { - requeue_ops(waiting_for_backfill_pos); requeue_object_waiters(waiting_for_missing_object); } else { - waiting_for_backfill_pos.clear(); waiting_for_missing_object.clear(); } for (map >::iterator p = waiting_for_degraded_object.begin(); @@ -8137,7 +8119,6 @@ int ReplicatedPG::recover_backfill( } pgbackend->run_recovery_op(h, cct->_conf->osd_recovery_op_priority); - 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 455aaf604825..bae8544183a6 100644 --- a/src/osd/ReplicatedPG.h +++ b/src/osd/ReplicatedPG.h @@ -1063,8 +1063,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);