diff --git a/src/osd_flush.cpp b/src/osd_flush.cpp index 93f6e332..d4317760 100644 --- a/src/osd_flush.cpp +++ b/src/osd_flush.cpp @@ -126,7 +126,6 @@ void osd_t::handle_flush_op(bool rollback, pool_id_t pool_id, pg_num_t pg_num, p pool_id, pg_num, (uint64_t)wr_it->second, wr_it->first.inode, wr_it->first.stripe); } continue_ops.push_back(wr_it->second); - pg.write_queue.erase(wr_it); } } if (it == pg.flush_actions.end() || !it->second.submitted) diff --git a/src/osd_primary_write.cpp b/src/osd_primary_write.cpp index a2dee57a..dd6e6652 100644 --- a/src/osd_primary_write.cpp +++ b/src/osd_primary_write.cpp @@ -12,6 +12,7 @@ bool osd_t::check_write_queue(osd_op_t *cur_op, pg_t & pg) .oid = op_data->oid, .osd_num = 0, }); + op_data->st = 1; if (act_it != pg.flush_actions.end() && act_it->first.oid.inode == op_data->oid.inode && (act_it->first.oid.stripe & ~STRIPE_MASK) == op_data->oid.stripe) @@ -23,7 +24,6 @@ bool osd_t::check_write_queue(osd_op_t *cur_op, pg_t & pg) auto vo_it = pg.write_queue.find(op_data->oid); if (vo_it != pg.write_queue.end()) { - op_data->st = 1; pg.write_queue.emplace(op_data->oid, cur_op); return false; }