diff options
Diffstat (limited to 'block/ll_rw_blk.c')
-rw-r--r-- | block/ll_rw_blk.c | 8 |
1 files changed, 8 insertions, 0 deletions
diff --git a/block/ll_rw_blk.c b/block/ll_rw_blk.c index ef42bb2b12b6..3795e0708a22 100644 --- a/block/ll_rw_blk.c +++ b/block/ll_rw_blk.c | |||
@@ -4091,6 +4091,13 @@ int blk_register_queue(struct gendisk *disk) | |||
4091 | return ret; | 4091 | return ret; |
4092 | } | 4092 | } |
4093 | 4093 | ||
4094 | ret = bsg_register_disk(disk); | ||
4095 | if (ret) { | ||
4096 | elv_unregister_queue(q); | ||
4097 | kobject_unregister(&q->kobj); | ||
4098 | return ret; | ||
4099 | } | ||
4100 | |||
4094 | return 0; | 4101 | return 0; |
4095 | } | 4102 | } |
4096 | 4103 | ||
@@ -4099,6 +4106,7 @@ void blk_unregister_queue(struct gendisk *disk) | |||
4099 | request_queue_t *q = disk->queue; | 4106 | request_queue_t *q = disk->queue; |
4100 | 4107 | ||
4101 | if (q && q->request_fn) { | 4108 | if (q && q->request_fn) { |
4109 | bsg_unregister_disk(disk); | ||
4102 | elv_unregister_queue(q); | 4110 | elv_unregister_queue(q); |
4103 | 4111 | ||
4104 | kobject_uevent(&q->kobj, KOBJ_REMOVE); | 4112 | kobject_uevent(&q->kobj, KOBJ_REMOVE); |