Read doesn't need to be ordered. So when proxy read comes back from base
tier, it's not necessarily at the front of the in progress list.
Fixes: #11211
Signed-off-by: Zhiqiang Wang <zhiqiang.wang@intel.com>
(cherry picked from commit
560a5839c0d1852b5816937b845b60390777636c)
return;
}
assert(q->second.size());
- OpRequestRef op = q->second.front();
- assert(op == prdop->op);
- q->second.pop_front();
+ list<OpRequestRef>::iterator it = std::find(q->second.begin(),
+ q->second.end(),
+ prdop->op);
+ assert(it != q->second.end());
+ OpRequestRef op = *it;
+ q->second.erase(it);
if (q->second.size() == 0) {
in_progress_proxy_reads.erase(oid);
}