From: myoungwon oh Date: Thu, 7 Dec 2017 07:32:32 +0000 (+0900) Subject: osd: use stop_block() if the object is blocked X-Git-Tag: v13.0.2~629^2~2 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=6273c2ffef8e0caf9de2fda2b3e1e3c59e14b4cb;p=ceph.git osd: use stop_block() if the object is blocked This commit prevents double free in finish_flush() (stop_block() -> cancel_flush()) Signed-off-by: Myoungwon Oh --- diff --git a/src/osd/PrimaryLogPG.cc b/src/osd/PrimaryLogPG.cc index 32f542fe56af..76ccae05a668 100644 --- a/src/osd/PrimaryLogPG.cc +++ b/src/osd/PrimaryLogPG.cc @@ -9851,7 +9851,7 @@ void PrimaryLogPG::cancel_flush(FlushOpRef fop, bool requeue) p.second = 0; } } - if (fop->blocking) { + if (fop->blocking && fop->obc->is_blocked()) { fop->obc->stop_block(); kick_object_context_blocked(fop->obc); }