Skip to content

Commit

Permalink
osd: set priority of kick recovery op
Browse files Browse the repository at this point in the history
different clients has its own priority, so set kick recovery op priority equal real client priority, not osd_client_op_priority in server-end config file

Signed-off-by: yaoning <yaoning@unitedstack.com>
  • Loading branch information
yaoning committed May 9, 2016
1 parent ad9786b commit 86cda40
Show file tree
Hide file tree
Showing 2 changed files with 6 additions and 6 deletions.
10 changes: 5 additions & 5 deletions src/osd/ReplicatedPG.cc
Expand Up @@ -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))
Expand All @@ -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);
}
}

Expand All @@ -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");
}
Expand Down Expand Up @@ -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");
}
Expand Down
2 changes: 1 addition & 1 deletion src/osd/ReplicatedPG.h
Expand Up @@ -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);

Expand Down

0 comments on commit 86cda40

Please sign in to comment.