On Tue, Oct 31 2006, Neil Brown wrote: > On Tuesday October 31, jens.axboe@xxxxxxxxxx wrote: > > On Tue, Oct 31 2006, Neil Brown wrote: > > > > > > I'm guessing we need > > > > > > diff .prev/block/elevator.c ./block/elevator.c > > > --- .prev/block/elevator.c 2006-10-31 20:06:22.000000000 +1100 > > > +++ ./block/elevator.c 2006-10-31 20:06:40.000000000 +1100 > > > @@ -926,7 +926,7 @@ static void __elv_unregister_queue(eleva > > > > > > void elv_unregister_queue(struct request_queue *q) > > > { > > > - if (q) > > > + if (q && q->elevator) > > > __elv_unregister_queue(q->elevator); > > > } > > > > > > > > > Jens? md never registers and elevator for its queue. > > > > Hmm, but blk_unregister_queue() doesn't call elv_unregister_queue() > > unless q->request_fn is set. And in that case, you must have an io > > scheduler attached. > > Hmm.. yes. Oh, I get it. I have > > blk_cleanup_queue(mddev->queue); > mddev->queue = NULL; > del_gendisk(mddev->gendisk); > mddev->gendisk = NULL; > > That's the wrong order, isn't it. :-( Yep, you want to reverse that :-) -- Jens Axboe - To unsubscribe from this list: send the line "unsubscribe linux-raid" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html