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

Christian A. Ehrhardt posted 3 patches 1 week, 2 days ago
lib/scatterlist.c          |   2 +-
lib/tests/kunit_iov_iter.c | 147 ++++++++++++++++++++++++++++++++++++-
2 files changed, 147 insertions(+), 2 deletions(-)
[PATCH v2 0/3] Fix length calculation bug in extract_kvec_to_sg
Posted by Christian A. Ehrhardt 1 week, 2 days ago
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@c--e.de:
- 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
Re: [PATCH v2 0/3] Fix length calculation bug in extract_kvec_to_sg
Posted by Josh Law 1 week, 2 days ago

On 24 March 2026 20:34:50 GMT, "Christian A. Ehrhardt" <lk@c--e.de> wrote:
>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@c--e.de:
>- 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(-)
>




Hello again Christian!


Great job fixing those AI reviews! Those are sometimes important, And your code is completely solid, i personally tested it all for you :) 


Cc: Stable is also justified

I will add what was good about this code on the respective threads


Whole series: 
Reviewed-by: Josh Law <objecting@objecting.org >
Tested-By: Josh Law <objecting@objecting.org>



V/R


Josh Law