[PATCH v2 0/3] Fix length calculation bug in extract_kvec_to_sg

From: Christian A. Ehrhardt

Date: Tue Mar 24 2026 - 16:38:40 EST


There is a bug in extract_kvec_to_sg() where the length
of a scatterlist segment is miscalculated. The actual fix
is a one-liner and it is quite obvious from reading the
code that this is what was intened.

As this is a core library function this series first adds
test cases to the kunit_iov_iter test that demonstrate that
there is a bug before actually fixing it in the last commit.

The bug was orignally introduced into kernel v6.3 where the
function lived in fs/netfs/iterator.c. It was later moved
to lib/scatterlist.c in v6.5. Thus the actual fix is only
marked for backports to v6.5+.

---
Changes in v2:
Addresss valid issues raised by AI review
https://sashiko.dev/#/patchset/20260323212350.807118-1-lk@xxxxxxx:
- Add kunit assertions for OOM conditions in the test
- Reorder commits.
- Fix sg_max == 0 case.
- Fix return value if we run out of sg entries.
- Adjust tests to catch these cases, too.
---

Christian A. Ehrhardt (3):
lib: kunit_iov_iter: Improve error detection
lib: kunit_iov_iter: Add tests for extract_iter_to_sg
lib: Fix length calculation in extract_kvec_to_sg

lib/scatterlist.c | 2 +-
lib/tests/kunit_iov_iter.c | 147 ++++++++++++++++++++++++++++++++++++-
2 files changed, 147 insertions(+), 2 deletions(-)

--
2.43.0