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. :-( Thanks, NeilBrown - 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