]> git.apps.os.sepia.ceph.com Git - ceph.git/commitdiff
osd: mark queued flag for op 12352/head
authorYunchuan Wen <yunchuan.wen@kylin-cloud.com>
Wed, 7 Dec 2016 00:56:14 +0000 (08:56 +0800)
committerYunchuan Wen <yunchuan.wen@kylin-cloud.com>
Wed, 7 Dec 2016 00:56:14 +0000 (08:56 +0800)
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 <yunchuan.wen@kylin-cloud.com>
src/osd/PG.cc

index 6daf383cbc25adcd9d889f65de825434845ffd96..c2c6af5d63a697eea90f76f24b0ece1b8bda5508 100644 (file)
@@ -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++);
     }