From aa7699da24e211527b4066ad5d19ce0dd387fc0c Mon Sep 17 00:00:00 2001 From: Vitaliy Filippov Date: Sun, 31 Jan 2021 22:47:06 +0300 Subject: [PATCH] Fix subop generation for snapshot implementation --- src/cluster_client.cpp | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/src/cluster_client.cpp b/src/cluster_client.cpp index a134f7386..1493b4b79 100644 --- a/src/cluster_client.cpp +++ b/src/cluster_client.cpp @@ -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++; } }