On Mon, Jan 31 2000, David Woodhouse wrote:
> axboe@suse.de said:
> > Sure this should be CURRENT->current_nr_sectors.
>
> OK. That makes some sense. Thanks.
>
> So now I get, in the simplest case, two consecutive requests, each with
> CURRENT->nr_sectors == 4, CURRENT->current_nr_sectors == 2, and
> CURRENT->sectors == 0.
(CURRENT->sector, right?). What is "the simplest" case? (dd something).
> There appears to be no CURRENT->current_sector.
No, CURRENT->sector is always the "current" sector. When you call
end_request, end_that_request_first will adjust rq->sector for
you.
> What am I missing?
Probably an end_request somewhere. The logic goes something like this:
- receive request
- transfer CURRENT->current_nr_sectors in direction of CURRENT->cmd
to CURRENT->buffer from/to CURRENT->sector
- end_request
You never need to look at CURRENT->nr_sectors if you are not handling
clustered requests yourself, end_request handles that for you.
FWIW, I have verified request handling with a dummy driver I wrote.
It even handles merged requests with "holes", i.e. non-consequitive
buffer heads.
-- * Jens Axboe <axboe@suse.de> * Linux CD-ROM Maintainer * http://www.kernel.dk- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.rutgers.edu Please read the FAQ at http://www.tux.org/lkml/
This archive was generated by hypermail 2b29 : Mon Jan 31 2000 - 21:00:29 EST