Messages in this thread Patch in this message | | | Date | Fri, 25 Mar 2011 15:10:43 +0100 | From | Jens Axboe <> | Subject | Re: [GIT PULL] Core block IO bits for 2.6.39 - early Oops |
| |
On 2011-03-25 14:09, Markus Trippelsdorf wrote: > On 2011.03.25 at 13:44 +0100, Jens Axboe wrote: >> On 2011-03-25 10:57, Markus Trippelsdorf wrote: >>> >>> Reverting it solves all problems here. >> >> Can you try this one? > > This one doesn't help; I still get the same BUG. > > BTW if you're having trouble reproducing this, here is the only non > stock xfs option that I use on the affected partitions: > > noatime,logbsize=262144
This?
diff --git a/block/blk-core.c b/block/blk-core.c index 59b5c00..121df87 100644 --- a/block/blk-core.c +++ b/block/blk-core.c @@ -1197,6 +1197,7 @@ static bool attempt_plug_merge(struct task_struct *tsk, struct request_queue *q, if (!plug) goto out; + preempt_disable(); list_for_each_entry_reverse(rq, &plug->list, queuelist) { int el_ret; @@ -1214,6 +1215,7 @@ static bool attempt_plug_merge(struct task_struct *tsk, struct request_queue *q, break; } } + preempt_enable(); out: return ret; } @@ -1322,7 +1324,9 @@ get_rq: * Debug flag, kill later */ req->cmd_flags |= REQ_ON_PLUG; + preempt_disable(); list_add_tail(&req->queuelist, &plug->list); + preempt_enable(); drive_stat_acct(req, 1); } else { spin_lock_irq(q->queue_lock); -- Jens Axboe
| |