Fix merge/flatten into a pool with different object size

This commit is contained in:
Vitaliy Filippov
2024-08-10 19:23:26 +03:00
parent 09342d7189
commit 4e90e752eb
+4
View File
@@ -1286,8 +1286,12 @@ void cluster_client_t::handle_op_part(cluster_op_part_t *part)
if (op->opcode == OSD_OP_READ || op->opcode == OSD_OP_READ_BITMAP || op->opcode == OSD_OP_READ_CHAIN_BITMAP) if (op->opcode == OSD_OP_READ || op->opcode == OSD_OP_READ_BITMAP || op->opcode == OSD_OP_READ_CHAIN_BITMAP)
{ {
copy_part_bitmap(op, part); copy_part_bitmap(op, part);
if (op->inode == op->cur_inode)
{
// Read only returns the version of the uppermost layer
op->version = op->parts.size() == 1 ? part->op.reply.rw.version : 0; op->version = op->parts.size() == 1 ? part->op.reply.rw.version : 0;
} }
}
else if (op->opcode == OSD_OP_WRITE) else if (op->opcode == OSD_OP_WRITE)
{ {
op->version = op->parts.size() == 1 ? part->op.reply.rw.version : 0; op->version = op->parts.size() == 1 ? part->op.reply.rw.version : 0;