Messages in this thread | | | Date | Mon, 15 Aug 2011 13:48:45 -0400 | From | Dave Jones <> | Subject | Re: exception in interrupt during elv_completed_request. (3.0) |
| |
On Tue, Aug 09, 2011 at 08:48:32AM -0500, James Bottomley wrote:
> > > > > > Looks like the recent SCSI removal oopses, perhaps it happened when he > > > > > > yanked it instead of directly on insertion? > > > > > > > > > > sorry my bad, yes, this was on device removal. > > > > > > > > > > according to the user, he did everything right, and unmounted safely. > > > > > https://bugzilla.redhat.com/show_bug.cgi?id=728872 > > > > > > > > James? > > > > > > Should be resolved in 3.0.1 now. > > > > > > If not, please let James, and me, know. > > > > Are you talking about the scsi_dispatch_cmd fix ? this is something else. > > I'm not so sure ... it looks like a stray block put coming after queue > teardown to me. elevator_exit() will NULL e->ops but blk_put_request() > uses it unconditionally. > > That's more a fix like this, isn't it? > > James > > --- > > diff --git a/block/elevator.c b/block/elevator.c > index a3b64bc..de4bde9 100644 > --- a/block/elevator.c > +++ b/block/elevator.c > @@ -812,7 +812,7 @@ void elv_completed_request(struct request_queue *q, struct request *rq) > */ > if (blk_account_rq(rq)) { > q->in_flight[rq_is_sync(rq)]--; > - if ((rq->cmd_flags & REQ_SORTED) && > + if ((rq->cmd_flags & REQ_SORTED) && e->ops && > e->ops->elevator_completed_req_fn) > e->ops->elevator_completed_req_fn(q, rq); > }
I did a build with this change for the user seeing the problem. Apparentely, it didn't change anything.
Dave
| |