The IO scheduler is using the last-submitted-sector as an insertion target. 
This allows a streaming read to get a tremendous advantage over other IO
submissions.  Disable this for now.


 block/deadline-iosched.c |    2 +-
 1 files changed, 1 insertion(+), 1 deletion(-)

diff -puN drivers/block/deadline-iosched.c~starvation-by-read-fix drivers/block/deadline-iosched.c
--- 25/drivers/block/deadline-iosched.c~starvation-by-read-fix	2003-02-14 15:36:09.000000000 -0800
+++ 25-akpm/drivers/block/deadline-iosched.c	2003-02-14 15:36:09.000000000 -0800
@@ -237,7 +237,7 @@ deadline_add_drq_rb(struct deadline_data
 	const int data_dir = rq_data_dir(drq->request);
 	
 	/* keep the next_drq cache up to date */
-	if (dd->next_drq[data_dir] != NULL) {
+	if (0 && dd->next_drq[data_dir] != NULL) {
 		sector_t last = dd->last_sector[data_dir];
 		sector_t next = dd->next_drq[data_dir]->request->sector;
 		sector_t this = drq->request->sector;

_