Fix write operations not continued correctly after flush
parent
1d83fdcd17
commit
baaf8f6f44
|
@ -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);
|
pool_id, pg_num, (uint64_t)wr_it->second, wr_it->first.inode, wr_it->first.stripe);
|
||||||
}
|
}
|
||||||
continue_ops.push_back(wr_it->second);
|
continue_ops.push_back(wr_it->second);
|
||||||
pg.write_queue.erase(wr_it);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (it == pg.flush_actions.end() || !it->second.submitted)
|
if (it == pg.flush_actions.end() || !it->second.submitted)
|
||||||
|
|
|
@ -12,6 +12,7 @@ bool osd_t::check_write_queue(osd_op_t *cur_op, pg_t & pg)
|
||||||
.oid = op_data->oid,
|
.oid = op_data->oid,
|
||||||
.osd_num = 0,
|
.osd_num = 0,
|
||||||
});
|
});
|
||||||
|
op_data->st = 1;
|
||||||
if (act_it != pg.flush_actions.end() &&
|
if (act_it != pg.flush_actions.end() &&
|
||||||
act_it->first.oid.inode == op_data->oid.inode &&
|
act_it->first.oid.inode == op_data->oid.inode &&
|
||||||
(act_it->first.oid.stripe & ~STRIPE_MASK) == op_data->oid.stripe)
|
(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);
|
auto vo_it = pg.write_queue.find(op_data->oid);
|
||||||
if (vo_it != pg.write_queue.end())
|
if (vo_it != pg.write_queue.end())
|
||||||
{
|
{
|
||||||
op_data->st = 1;
|
|
||||||
pg.write_queue.emplace(op_data->oid, cur_op);
|
pg.write_queue.emplace(op_data->oid, cur_op);
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue