mirror of
https://github.com/ceph/ceph
synced 2025-04-01 14:51:13 +00:00
Merge pull request #5396 from XinzeChi/wip-scrub-promote
bug fix: osd: requeue_scrub when kick_object_context_blocked Reviewed-by: Sage Weil <sage@redhat.com> Reviewed-by: David Zafman <dzafman@redhat.com>
This commit is contained in:
commit
a7f1a3ac6c
@ -8627,19 +8627,18 @@ void ReplicatedPG::add_object_context_to_pg_stat(ObjectContextRef obc, pg_stat_t
|
||||
void ReplicatedPG::kick_object_context_blocked(ObjectContextRef obc)
|
||||
{
|
||||
const hobject_t& soid = obc->obs.oi.soid;
|
||||
map<hobject_t, list<OpRequestRef>, hobject_t::BitwiseComparator>::iterator p = waiting_for_blocked_object.find(soid);
|
||||
if (p == waiting_for_blocked_object.end())
|
||||
return;
|
||||
|
||||
if (obc->is_blocked()) {
|
||||
dout(10) << __func__ << " " << soid << " still blocked" << dendl;
|
||||
return;
|
||||
}
|
||||
|
||||
list<OpRequestRef>& ls = p->second;
|
||||
dout(10) << __func__ << " " << soid << " requeuing " << ls.size() << " requests" << dendl;
|
||||
requeue_ops(ls);
|
||||
waiting_for_blocked_object.erase(p);
|
||||
map<hobject_t, list<OpRequestRef>, hobject_t::BitwiseComparator>::iterator p = waiting_for_blocked_object.find(soid);
|
||||
if (p != waiting_for_blocked_object.end()) {
|
||||
list<OpRequestRef>& ls = p->second;
|
||||
dout(10) << __func__ << " " << soid << " requeuing " << ls.size() << " requests" << dendl;
|
||||
requeue_ops(ls);
|
||||
waiting_for_blocked_object.erase(p);
|
||||
}
|
||||
|
||||
map<hobject_t, ObjectContextRef>::iterator i =
|
||||
objects_blocked_on_snap_promotion.find(obc->obs.oi.soid.get_head());
|
||||
|
Loading…
Reference in New Issue
Block a user