From f9fc3548aee34de8fdfd9d1b95806e9e009a8d1f Mon Sep 17 00:00:00 2001 From: Yunchuan Wen Date: Wed, 7 Dec 2016 08:56:14 +0800 Subject: [PATCH] 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 --- src/osd/PG.cc | 1 + 1 file changed, 1 insertion(+) diff --git a/src/osd/PG.cc b/src/osd/PG.cc index 6daf383cbc25a..c2c6af5d63a69 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++); } -- 2.39.5