From 48f023292d5a2ebf55ff0bebbea9cad892bfca6b Mon Sep 17 00:00:00 2001 From: Vitaliy Filippov Date: Sat, 21 Sep 2024 17:05:35 +0300 Subject: [PATCH] Fix extra data reads on read_chain --- src/osd/osd_primary_chain.cpp | 15 +++++++++------ 1 file changed, 9 insertions(+), 6 deletions(-) diff --git a/src/osd/osd_primary_chain.cpp b/src/osd/osd_primary_chain.cpp index 9cc37962..37d58ec4 100644 --- a/src/osd/osd_primary_chain.cpp +++ b/src/osd/osd_primary_chain.cpp @@ -369,12 +369,15 @@ std::vector osd_t::collect_chained_read_requests(osd_op_t *cur global_bitmap[cur>>3] = global_bitmap[cur>>3] | (part_bitmap[cur>>3] & (1 << (cur&7))); } // Add request - chain_reads.push_back((osd_chain_read_t){ - .chain_pos = chain_pos, - .inode = op_data->read_chain[chain_pos], - .offset = start*bs_bitmap_granularity, - .len = (end-start)*bs_bitmap_granularity, - }); + if (cur_op->req.rw.len) + { + chain_reads.push_back((osd_chain_read_t){ + .chain_pos = chain_pos, + .inode = op_data->read_chain[chain_pos], + .offset = start*bs_bitmap_granularity, + .len = (end-start)*bs_bitmap_granularity, + }); + } } } return chain_reads;