From: Yunchuan Wen Date: Wed, 7 Dec 2016 00:56:14 +0000 (+0800) Subject: osd: mark queued flag for op X-Git-Tag: v11.1.1~85^2 X-Git-Url: http://git.apps.os.sepia.ceph.com/?a=commitdiff_plain;h=f9fc3548aee34de8fdfd9d1b95806e9e009a8d1f;p=ceph-ci.git osd: mark queued flag for op queue_op will check the op epoch with current osdmap epoch, and then, the op will be push into waiting_for_map or mark queued flag. but when the op pop from waiting_for_map, take_op_map_waiters forget to mark queued flag before handle it. Signed-off-by: Yunchuan Wen --- diff --git a/src/osd/PG.cc b/src/osd/PG.cc index 6daf383cbc2..c2c6af5d63a 100644 --- a/src/osd/PG.cc +++ b/src/osd/PG.cc @@ -1898,6 +1898,7 @@ void PG::take_op_map_waiters() if (op_must_wait_for_map(get_osdmap_with_maplock()->get_epoch(), *i)) { break; } else { + (*i)->mark_queued_for_pg(); osd->op_wq.queue(make_pair(PGRef(this), *i)); waiting_for_map.erase(i++); }