2000-10-30 18:57:21

by Al Peat

[permalink] [raw]
Subject: hard_sector / hard_nr_sectors

I was wondering if someone could give me a quick
overview of the differences between sector/nr_sectors
and hard_sector/hard_nr_sectors in blk_dev.h's request
structure, or point me to some
documentation/discussion on this?

Thanks in advance,
Al

__________________________________________________
Do You Yahoo!?
Yahoo! Messenger - Talk while you surf! It's FREE.
http://im.yahoo.com/


2000-10-31 01:08:43

by Andrea Arcangeli

[permalink] [raw]
Subject: Re: hard_sector / hard_nr_sectors

On Mon, Oct 30, 2000 at 10:56:39AM -0800, Al Peat wrote:
> I was wondering if someone could give me a quick
> overview of the differences between sector/nr_sectors
> and hard_sector/hard_nr_sectors in blk_dev.h's request
> structure, or point me to some
> documentation/discussion on this?

The reason hard_nr_sectors is been introduced is that it allows all device
drivers to handle merged I/O requests transparently. In 2.4.x we do merging at
the highlevel layer unconditionally and so it was necessary to avoid breakage
of lowlevel drivers.

This way device drivers can limit themself to look at
current_request->buffer/current_nr_sectors/sector... and to call end_request(1)
once the I/O is completed (end_that_request_first will take care of updating
current->sector/nr_sector for the next pass of the request_fn without the need
of ugly changes to the lowlevel drivers).

Andrea