X-Git-Url: http://git.cascardo.eti.br/?a=blobdiff_plain;f=block%2Fblk-sysfs.c;h=949075952119f83e23600e02b7942ba74e8b857c;hb=f355265571440a7db16e784b6edf4e7d26971a03;hp=4db5abf96b9ec1595a822efebfb9df9776af6477;hpb=4dacb91c7d1ab30aa9aac0d55216fc177d454254;p=cascardo%2Flinux.git diff --git a/block/blk-sysfs.c b/block/blk-sysfs.c index 4db5abf96b9e..949075952119 100644 --- a/block/blk-sysfs.c +++ b/block/blk-sysfs.c @@ -517,11 +517,11 @@ static void blk_release_queue(struct kobject *kobj) if (q->queue_tags) __blk_queue_free_tags(q); + blk_exit_flush(q); + if (q->mq_ops) blk_mq_free_queue(q); - kfree(q->flush_rq); - blk_trace_shutdown(q); bdi_destroy(&q->backing_dev_info); @@ -554,8 +554,10 @@ int blk_register_queue(struct gendisk *disk) * Initialization must be complete by now. Finish the initial * bypass from queue allocation. */ - queue_flag_set_unlocked(QUEUE_FLAG_INIT_DONE, q); - blk_queue_bypass_end(q); + if (!blk_queue_init_done(q)) { + queue_flag_set_unlocked(QUEUE_FLAG_INIT_DONE, q); + blk_queue_bypass_end(q); + } ret = blk_trace_init_sysfs(dev); if (ret)