Re: [PATCH rdma-next v1 1/2] lib/scatterlist: Fix wrong update of orig_nents

From: Christoph Hellwig
Date: Wed Jun 30 2021 - 02:34:08 EST


On Wed, Jun 30, 2021 at 09:29:51AM +0300, Leon Romanovsky wrote:
> On Wed, Jun 30, 2021 at 06:59:11AM +0100, Christoph Hellwig wrote:
> > On Tue, Jun 29, 2021 at 11:40:01AM +0300, Leon Romanovsky wrote:
> > > 2. Add a new field total_nents to reflect the total number of entries
> > > in the table. This is required for the release flow (sg_free_table).
> > > This filed should be used internally only by scatterlist.
> >
> > No, please don't bloat the common structure.
>
> Somehow we need to store that total_nents value and our internal
> proposal was to wrap sg_table with another private structure that is
> visible in lib/scatterlist.c only.
>
> Something like that:
> struct sg_table_private {
> struct sg_table table;
> unsigned int total_nents;
> };
>
> But it looks awkward.

Well, the important point is that we only need it for the new
way of collapsing, appending allocations. We should not burden
it on all other users.