From: Samuel Just Date: Wed, 11 Feb 2015 18:30:51 +0000 (-0800) Subject: ReplicatedPG::on_change: requeue in_progress_async_reads close to last X-Git-Tag: v0.93~10^2~9^2 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=e2a508573f784e2f5de38257df8367e85646ab75;p=ceph.git ReplicatedPG::on_change: requeue in_progress_async_reads close to last Fixes: 10768 Signed-off-by: Samuel Just --- diff --git a/src/osd/ReplicatedPG.cc b/src/osd/ReplicatedPG.cc index 93f4f72b88d18..488ebd8eac0fe 100644 --- a/src/osd/ReplicatedPG.cc +++ b/src/osd/ReplicatedPG.cc @@ -10402,14 +10402,6 @@ void ReplicatedPG::on_change(ObjectStore::Transaction *t) context_registry_on_change(); - for (list >::iterator i = - in_progress_async_reads.begin(); - i != in_progress_async_reads.end(); - in_progress_async_reads.erase(i++)) { - close_op_ctx(i->second, -ECANCELED); - requeue_op(i->first); - } - cancel_copy_ops(is_primary()); cancel_flush_ops(is_primary()); cancel_proxy_read_ops(is_primary()); @@ -10446,6 +10438,16 @@ void ReplicatedPG::on_change(ObjectStore::Transaction *t) waiting_for_all_missing.clear(); } + + for (list >::iterator i = + in_progress_async_reads.begin(); + i != in_progress_async_reads.end(); + in_progress_async_reads.erase(i++)) { + close_op_ctx(i->second, -ECANCELED); + if (is_primary()) + requeue_op(i->first); + } + // this will requeue ops we were working on but didn't finish, and // any dups apply_and_flush_repops(is_primary());