reduce: fix chunk_is_compressed calculation
Stupid bug - a chunk is compressed when the number of io_units for the compressed data does *not* equal the number of io_units per chunk. Paul found this during some of his initial DPDK framework integration testing. I have some better unit tests coming up to test this further, but want to get this obvious fix in for now. Signed-off-by: Jim Harris <james.r.harris@intel.com> Change-Id: Iaf9c78a1c1d6045070e7625c6a54ab3d227c8ea7 Reviewed-on: https://review.gerrithub.io/c/spdk/spdk/+/449498 Tested-by: SPDK CI Jenkins <sys_sgci@intel.com> Reviewed-by: Paul Luse <paul.e.luse@intel.com> Reviewed-by: Shuhei Matsumoto <shuhei.matsumoto.xt@hitachi.com> Reviewed-by: Changpeng Liu <changpeng.liu@intel.com>
This commit is contained in:
parent
fb51565a59
commit
df082c931e
@ -994,7 +994,7 @@ _reduce_vol_write_chunk(struct spdk_reduce_vol_request *req, reduce_request_fn n
|
||||
req->chunk = _reduce_vol_get_chunk_map(vol, req->chunk_map_index);
|
||||
req->num_io_units = spdk_divide_round_up(compressed_size,
|
||||
vol->params.backing_io_unit_size);
|
||||
req->chunk_is_compressed = (req->num_io_units == vol->backing_io_units_per_chunk);
|
||||
req->chunk_is_compressed = (req->num_io_units != vol->backing_io_units_per_chunk);
|
||||
req->chunk->compressed_size =
|
||||
req->chunk_is_compressed ? compressed_size : vol->params.chunk_size;
|
||||
|
||||
@ -1191,7 +1191,7 @@ _reduce_vol_read_chunk(struct spdk_reduce_vol_request *req, reduce_request_fn ne
|
||||
assert(req->chunk->compressed_size == vol->params.chunk_size);
|
||||
req->num_io_units = spdk_divide_round_up(req->chunk->compressed_size,
|
||||
vol->params.backing_io_unit_size);
|
||||
req->chunk_is_compressed = (req->num_io_units == vol->backing_io_units_per_chunk);
|
||||
req->chunk_is_compressed = (req->num_io_units != vol->backing_io_units_per_chunk);
|
||||
|
||||
_issue_backing_ops(req, vol, next_fn, false /* read */);
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user