diff options
author | Jens Axboe <axboe@fb.com> | 2017-02-06 13:55:46 -0700 |
---|---|---|
committer | Jens Axboe <axboe@fb.com> | 2017-02-06 13:55:46 -0700 |
commit | 4291537ec1f7bd8039befc8b95cff5a190d842e9 (patch) | |
tree | e268cc209a7b5b021b232658482a87d319405082 /block | |
parent | 7733a09c395938a40417949056415eed795739d7 (diff) | |
parent | 80c6b15732f0d8830032149cbcbc8d67e074b5e8 (diff) |
Merge branch 'for-4.11/next' into for-next
Diffstat (limited to 'block')
-rw-r--r-- | block/blk-sysfs.c | 21 |
1 files changed, 10 insertions, 11 deletions
diff --git a/block/blk-sysfs.c b/block/blk-sysfs.c index 3ce1217778f4..48032c4759a7 100644 --- a/block/blk-sysfs.c +++ b/block/blk-sysfs.c @@ -903,16 +903,15 @@ int blk_register_queue(struct gendisk *disk) blk_wb_init(q); - if (!q->request_fn) - return 0; - - ret = elv_register_queue(q); - if (ret) { - kobject_uevent(&q->kobj, KOBJ_REMOVE); - kobject_del(&q->kobj); - blk_trace_remove_sysfs(dev); - kobject_put(&dev->kobj); - return ret; + if (q->request_fn || (q->mq_ops && q->elevator)) { + ret = elv_register_queue(q); + if (ret) { + kobject_uevent(&q->kobj, KOBJ_REMOVE); + kobject_del(&q->kobj); + blk_trace_remove_sysfs(dev); + kobject_put(&dev->kobj); + return ret; + } } return 0; @@ -928,7 +927,7 @@ void blk_unregister_queue(struct gendisk *disk) if (q->mq_ops) blk_mq_unregister_dev(disk_to_dev(disk), q); - if (q->request_fn) + if (q->request_fn || (q->mq_ops && q->elevator)) elv_unregister_queue(q); kobject_uevent(&q->kobj, KOBJ_REMOVE); |