Messages in this thread Patch in this message | | | Date | Tue, 29 Mar 2011 13:38:34 +0200 | From | Jens Axboe <> | Subject | Re: [sporadic crash] blk: request botched |
| |
On 2011-03-29 13:17, Ingo Molnar wrote: > > FYI, i'm seeing a new block IO related boot failure. It starts by the kernel spewing: > > [ 84.434778] blk: request botched > [ 84.437546] blk: request botched > [ 84.441532] blk: request botched > > And after more dying noises, a colorful kernel crash in an apparently rarely > excercised error handler:
I don't think it's the error handler being broken, it simply looks like a request that is in a bad bad state thus causing the normal rq -> bio -> bvec run through to bomb out.
So the 'request botched' is the real BUG here.
Is that part reproducible? If so, can you please try with this patch?
diff --git a/block/blk-core.c b/block/blk-core.c index e0a0623..3045d0e 100644 --- a/block/blk-core.c +++ b/block/blk-core.c @@ -2163,7 +2163,8 @@ bool blk_update_request(struct request *req, int error, unsigned int nr_bytes) * size, something has gone terribly wrong. */ if (blk_rq_bytes(req) < blk_rq_cur_bytes(req)) { - printk(KERN_ERR "blk: request botched\n"); + blk_dump_rq_flags(req, "request botched"); + WARN_ON(1); req->__data_len = blk_rq_cur_bytes(req); } -- Jens Axboe
| |