lkml.org 
[lkml]   [2002]   [Jan]   [23]   [last100]   RSS Feed
Views: [more markup]   [less markup]   [headers]   [forward]  
 
Messages in this thread
/
DateWed, 23 Jan 2002 09:55:15 +0100
FromJens Axboe <>
SubjectRe: END GAME (Re: Linux 2.5.3-pre1-aia1)
On Tue, Jan 22 2002, Andre Hedrick wrote:
> 
> Linus, Jens,
> 
> I need a function that performs the kmapping to return a pointer with all
> the data needed for that transaction of the data phase, and will cross
> pages correctly, and may cross more than 2 pages at a time in PIO.
> I do not care how you do.
> 
> char * majic_voodoo_mapping (
> 	struct request *rq,
> 	int nsect,
> 	unsigned long *flags)
> {
> 	char * buffer_walk = ide_map_rq(rq, &flags);
> 	nsect -= ide_rq_offset(rq);
> 	do {
> 		buffer_walk += get_some_more(rq, nsect);
> 	} while (nsect)
> 	return buffer_walk;
> }
> 
> This should solve all the problems in the data-phases and let the driver
> run correctly. The result is on each "get_some_more" will all BLOCK/BIO to
> return the partial competions of at least one page
> 
> The function would behave like ide_end_request but only to adjust the 
> buffer in process, and make block/bio deal with munging it back to the top
> layers on the partial completions, it will not stop the data IO process of
> the ATOMIC command in process.

That _is_ what ide_end_request is doing, it is not stopping any data I/O
in progress. It is also atomic. What exactly do you think is missing?

> Better yet, I will shut my PIEHOLE!

Oh, that'll be the day. Lets just say I'm not running to get my
calendar and the big fat marker. :-)

-- 
Jens Axboe

-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

\
 
 \ /
  Last update: 2005-03-22 11:15    [W:0.296 / U:0.040 seconds]
©2003-2008 Jasper Spaans