Re: plugging in 2.4. Does it work?

Jens Axboe
2001-02-20T23:52:52Z

On Wed, Feb 21 2001, Peter T. Breuer wrote:
> I recall that in 2.2 the make_request code tested that the
> buffers were contiguous in memory. From 2.2.18:
>
> /* Can we add it to the end of this request? */
> if (back) {
> if (req->bhtail->b_data + req->bhtail->b_size
> != bh->b_data) {
> if (req->nr_segments < max_segments)
> req->nr_segments++;
> else break;
> }
>
> It looks to me like it tested that the b_data char* pointers of the
> two requests being considered are exactly distant by the declared
> size of one.
>
> Is that no longer the case? If so, that's my answer.

It will still cluster, the code above checks if the next bh is
contigious -- if it isn't, then check if we can grow another segment.
So you may be lucky that some buffer_heads in the chain are indeed
contiguous, that's what the segment count is for. This is exactly
the same in 2.4.

--
Jens Axboe