From ab39e03d598854a3c2fc974d4b48840fc0bacb37 Mon Sep 17 00:00:00 2001 From: Zhiqiang Wang Date: Fri, 24 Apr 2015 16:35:47 +0800 Subject: [PATCH] osd/ReplicatedPG: don't check order in finish_proxy_write When proxy write comes back from base tier, the write op may or may not sit at the front of the list. Signed-off-by: Zhiqiang Wang --- src/osd/ReplicatedPG.cc | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/src/osd/ReplicatedPG.cc b/src/osd/ReplicatedPG.cc index 9047d8bac0ed0..a0cb8fa14eda7 100644 --- a/src/osd/ReplicatedPG.cc +++ b/src/osd/ReplicatedPG.cc @@ -2281,9 +2281,11 @@ void ReplicatedPG::finish_proxy_write(hobject_t oid, ceph_tid_t tid, int r) } list& in_progress_op = q->second; assert(in_progress_op.size()); - OpRequestRef op = in_progress_op.front(); - assert(op == pwop->op); - in_progress_op.pop_front(); + list::iterator it = std::find(in_progress_op.begin(), + in_progress_op.end(), + pwop->op); + assert(it != in_progress_op.end()); + in_progress_op.erase(it); if (in_progress_op.size() == 0) { in_progress_proxy_ops.erase(oid); } -- 2.39.5