diff --git a/src/osd/ReplicatedPG.cc b/src/osd/ReplicatedPG.cc index be65e6ed7146c4..bd8dfc4dd684d8 100644 --- a/src/osd/ReplicatedPG.cc +++ b/src/osd/ReplicatedPG.cc @@ -377,7 +377,7 @@ bool ReplicatedPG::is_missing_object(const hobject_t& soid) const } void ReplicatedPG::maybe_kick_recovery( - const hobject_t &soid) + const hobject_t &soid, const unsigned prio) { eversion_t v; if (!missing_loc.needs_recovery(soid, &v)) @@ -393,11 +393,11 @@ void ReplicatedPG::maybe_kick_recovery( PGBackend::RecoveryHandle *h = pgbackend->open_recovery_op(); h->cache_dont_need = false; if (is_missing_object(soid)) { - recover_missing(soid, v, cct->_conf->osd_client_op_priority, h); + recover_missing(soid, v, prio, h); } else { prep_object_replica_pushes(soid, v, h); } - pgbackend->run_recovery_op(h, cct->_conf->osd_client_op_priority); + pgbackend->run_recovery_op(h, prio); } } @@ -406,7 +406,7 @@ void ReplicatedPG::wait_for_unreadable_object( { assert(is_unreadable_object(soid)); - maybe_kick_recovery(soid); + maybe_kick_recovery(soid, op->get_req()->get_priority()); waiting_for_unreadable_object[soid].push_back(op); op->mark_delayed("waiting for missing object"); } @@ -452,7 +452,7 @@ void ReplicatedPG::wait_for_degraded_object(const hobject_t& soid, OpRequestRef { assert(is_degraded_or_backfilling_object(soid)); - maybe_kick_recovery(soid); + maybe_kick_recovery(soid, op->get_req()->get_priority()); waiting_for_degraded_object[soid].push_back(op); op->mark_delayed("waiting for degraded object"); } diff --git a/src/osd/ReplicatedPG.h b/src/osd/ReplicatedPG.h index 47a6a1613d3a66..a8db47505e6928 100644 --- a/src/osd/ReplicatedPG.h +++ b/src/osd/ReplicatedPG.h @@ -1601,7 +1601,7 @@ class ReplicatedPG : public PG, public PGBackend::Listener { return is_missing_object(oid) || !missing_loc.readable_with_acting(oid, actingset); } - void maybe_kick_recovery(const hobject_t &soid); + void maybe_kick_recovery(const hobject_t &soid, const unsigned prio); void wait_for_unreadable_object(const hobject_t& oid, OpRequestRef op); void wait_for_all_missing(OpRequestRef op);