Fix subop generation for snapshot implementation

master
Vitaliy Filippov 2021-01-31 22:47:06 +03:00
parent 853ecba780
commit aa7699da24
1 changed files with 8 additions and 8 deletions

View File

@ -588,6 +588,7 @@ void cluster_client_t::slice_rw(cluster_op_t *op)
uint64_t begin = (op->offset < stripe ? stripe : op->offset);
uint64_t end = (op->offset + op->len) > (stripe + pg_block_size)
? (stripe + pg_block_size) : (op->offset + op->len);
op->parts[i].iov.reset();
if (op->cur_inode != op->inode)
{
// Read remaining parts from upper layers
@ -627,14 +628,13 @@ void cluster_client_t::slice_rw(cluster_op_t *op)
{
add_iov(end-begin, false, op, iov_idx, iov_pos, op->parts[i].iov, NULL, 0);
}
op->parts[i] = (cluster_op_part_t){
.parent = op,
.offset = begin,
.len = (uint32_t)(end - begin),
.pg_num = pg_num,
.sent = end > begin,
.done = end > begin,
};
op->parts[i].parent = op;
op->parts[i].offset = begin;
op->parts[i].len = (uint32_t)(end - begin);
op->parts[i].pg_num = pg_num;
op->parts[i].osd_num = 0;
op->parts[i].sent = end <= begin;
op->parts[i].done = end <= begin;
i++;
}
}