[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <4D8CA263.9090006@fusionio.com>
Date: Fri, 25 Mar 2011 15:10:43 +0100
From: Jens Axboe <jaxboe@...ionio.com>
To: Markus Trippelsdorf <markus@...ppelsdorf.de>
CC: Linus Torvalds <torvalds@...ux-foundation.org>,
"linux-kernel@...r.kernel.org" <linux-kernel@...r.kernel.org>,
Chris Mason <chris.mason@...cle.com>
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
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
Powered by blists - more mailing lists