The current position in the output block buffer is called 'pos' in fec_decode_rsb(), and 'block_offset' in fec_read_bufs() and fec_decode_bufs(). These names aren't very clear, especially 'block_offset' which is easily confused with the offset of a message or parity block or the position in the current parity block.
Rename it to 'out_pos'. Signed-off-by: Eric Biggers <[email protected]> --- drivers/md/dm-verity-fec.c | 28 +++++++++++++--------------- 1 file changed, 13 insertions(+), 15 deletions(-) diff --git a/drivers/md/dm-verity-fec.c b/drivers/md/dm-verity-fec.c index a49c43ca07763..51263f2be1350 100644 --- a/drivers/md/dm-verity-fec.c +++ b/drivers/md/dm-verity-fec.c @@ -44,15 +44,15 @@ static inline u8 *fec_buffer_rs_message(struct dm_verity *v, return &fio->bufs[i][j * v->fec->rs_k]; } /* * Decode all RS codewords whose message bytes were loaded into fio->bufs. Copy - * the corrected bytes into fio->output starting from block_offset. + * the corrected bytes into fio->output starting from out_pos. */ static int fec_decode_bufs(struct dm_verity *v, struct dm_verity_io *io, struct dm_verity_fec_io *fio, u64 rsb, int byte_index, - unsigned int block_offset, int neras) + unsigned int out_pos, int neras) { int r, corrected = 0, res; struct dm_buffer *buf; unsigned int n, i, j, parity_pos, to_copy; uint16_t par_buf[DM_VERITY_FEC_MAX_ROOTS]; @@ -65,11 +65,11 @@ static int fec_decode_bufs(struct dm_verity *v, struct dm_verity_io *io, * the starting position in that block. Then read that block. * * block_size is always a power of 2, but roots might not be. Note that * when it's not, a codeword's parity bytes can span a block boundary. */ - parity_block = (rsb + block_offset) * v->fec->roots; + parity_block = (rsb + out_pos) * v->fec->roots; parity_pos = parity_block & (v->fec->block_size - 1); parity_block >>= v->data_dev_block_bits; par = dm_bufio_read_with_ioprio(v->fec->bufio, parity_block, &buf, bio->bi_ioprio); if (IS_ERR(par)) { @@ -118,14 +118,13 @@ static int fec_decode_bufs(struct dm_verity *v, struct dm_verity_io *io, r = res; goto error; } corrected += res; - fio->output[block_offset] = msg_buf[byte_index]; + fio->output[out_pos++] = msg_buf[byte_index]; - block_offset++; - if (block_offset >= v->fec->block_size) + if (out_pos >= v->fec->block_size) goto done; } done: r = corrected; error: @@ -157,12 +156,11 @@ static int fec_is_erasure(struct dm_verity *v, struct dm_verity_io *io, /* * Read data blocks that are part of the RS block and deinterleave as much as * fits into buffers. Check for erasure locations if @neras is non-NULL. */ static int fec_read_bufs(struct dm_verity *v, struct dm_verity_io *io, - u64 rsb, u64 target, unsigned int block_offset, - int *neras) + u64 rsb, u64 target, unsigned int out_pos, int *neras) { bool is_zero; int i, j, target_index = -1; struct dm_buffer *buf; struct dm_bufio_client *bufio; @@ -241,13 +239,13 @@ static int fec_read_bufs(struct dm_verity *v, struct dm_verity_io *io, fio->erasures[(*neras)++] = i; } /* * deinterleave and copy the bytes that fit into bufs, - * starting from block_offset + * starting from out_pos */ - src_pos = block_offset; + src_pos = out_pos; fec_for_each_buffer_rs_message(fio, n, j) { if (src_pos >= v->fec->block_size) goto done; fec_buffer_rs_message(v, fio, n, j)[i] = bbuf[src_pos++]; } @@ -315,25 +313,25 @@ static void fec_init_bufs(struct dm_verity *v, struct dm_verity_fec_io *fio) static int fec_decode_rsb(struct dm_verity *v, struct dm_verity_io *io, struct dm_verity_fec_io *fio, u64 rsb, u64 offset, const u8 *want_digest, bool use_erasures) { int r, neras = 0; - unsigned int pos; + unsigned int out_pos; - for (pos = 0; pos < v->fec->block_size;) { + for (out_pos = 0; out_pos < v->fec->block_size;) { fec_init_bufs(v, fio); - r = fec_read_bufs(v, io, rsb, offset, pos, + r = fec_read_bufs(v, io, rsb, offset, out_pos, use_erasures ? &neras : NULL); if (unlikely(r < 0)) return r; - r = fec_decode_bufs(v, io, fio, rsb, r, pos, neras); + r = fec_decode_bufs(v, io, fio, rsb, r, out_pos, neras); if (r < 0) return r; - pos += fio->nbufs << DM_VERITY_FEC_BUF_RS_BITS; + out_pos += fio->nbufs << DM_VERITY_FEC_BUF_RS_BITS; } /* Always re-validate the corrected block against the expected hash */ r = verity_hash(v, io, fio->output, v->fec->block_size, io->tmp_digest); if (unlikely(r < 0)) -- 2.52.0
