lkml.org 
[lkml]   [2003]   [Feb]   [16]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
Patch in this message
/
Date
From
SubjectRe: [patch] elv_former_request reversion
On Sun, Feb 16 2003, Jens Axboe wrote:
> On Sat, Feb 15 2003, Andrew Morton wrote:
> >
> > This morning's fix for elv_former_request() is causing oopses all over the
> > place in the IO scheduler.
> >
> > Jens, remember that I did try that fix a while ago, and the same happened.
> >
> > I believe it has exposed a new problem at the
> > __make_request/attempt_front_merge level: if attempt_front_merge()
> > actually succeeds, the wrong request gets freed up in
> > elv_merged_request().
> >
> > It may be best to back this change out until it can be fixed up for
> > real.
>
> Yes agreed, I had forgotten about that point... Will fix.

Andrew, does this work for you?

===== drivers/block/deadline-iosched.c 1.14 vs edited =====
--- 1.14/drivers/block/deadline-iosched.c Fri Feb 14 13:57:15 2003
+++ edited/drivers/block/deadline-iosched.c Sun Feb 16 12:57:35 2003
@@ -297,6 +297,9 @@
deadline_del_drq_rb(dd, drq);
}

+ if (q->last_merge == &rq->queuelist)
+ q->last_merge = NULL;
+
list_del_init(&rq->queuelist);
}

@@ -424,12 +427,7 @@
{
request_queue_t *q = drq->request->q;

- if (q->last_merge == &drq->request->queuelist)
- q->last_merge = NULL;
-
- deadline_del_drq_hash(drq);
- deadline_del_drq_rb(dd, drq);
- list_del_init(&drq->fifo);
+ deadline_remove_request(q, drq->request);
list_add_tail(&drq->request->queuelist, dd->dispatch);
}

===== drivers/block/elevator.c 1.39 vs edited =====
--- 1.39/drivers/block/elevator.c Sun Feb 16 00:57:09 2003
+++ edited/drivers/block/elevator.c Sun Feb 16 11:32:35 2003
@@ -399,7 +399,7 @@
elevator_t *e = &q->elevator;

if (e->elevator_former_req_fn)
- return e->elevator_latter_req_fn(q, rq);
+ return e->elevator_former_req_fn(q, rq);

prev = rq->queuelist.prev;
if (prev != &q->queue_head && prev != &rq->queuelist)
--
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 13:33    [W:0.043 / U:0.068 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site