forked from vitalif/vitastor
Fix subop generation for snapshot implementation
parent
853ecba780
commit
aa7699da24
|
@ -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++;
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue