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 ef42bb2b12b..3795e0708a2 100644 --- a/block/ll_rw_blk.c +++ b/block/ll_rw_blk.c @@ -4091,6 +4091,13 @@ int blk_register_queue(struct gendisk *disk) return ret; } + ret = bsg_register_disk(disk); + if (ret) { + elv_unregister_queue(q); + kobject_unregister(&q->kobj); + return ret; + } + return 0; } @@ -4099,6 +4106,7 @@ void blk_unregister_queue(struct gendisk *disk) request_queue_t *q = disk->queue; if (q && q->request_fn) { + bsg_unregister_disk(disk); elv_unregister_queue(q); kobject_uevent(&q->kobj, KOBJ_REMOVE); |