diff options
author | Jens Axboe <axboe@fb.com> | 2015-06-10 08:01:20 -0600 |
---|---|---|
committer | Jens Axboe <axboe@fb.com> | 2015-06-10 08:01:20 -0600 |
commit | 0bb979472a7401022109e81dd89d777adea58710 (patch) | |
tree | 27cf4730d269d037ad5b0db1f89d5ecf788cb3d0 /block/elevator.c | |
parent | ae11f7efda05dc568521924c890c80d0be908d43 (diff) | |
download | linux-stable-0bb979472a7401022109e81dd89d777adea58710.tar.gz linux-stable-0bb979472a7401022109e81dd89d777adea58710.tar.bz2 linux-stable-0bb979472a7401022109e81dd89d777adea58710.zip |
cfq-iosched: fix the setting of IOPS mode on SSDs
A previous commit wanted to make CFQ default to IOPS mode on
non-rotational storage, however it did so when the queue was
initialized and the non-rotational flag is only set later on
in the probe.
Add an elevator hook that gets called off the add_disk() path,
at that point we know that feature probing has finished, and
we can reliably check for the various flags that drivers can
set.
Fixes: 41c0126b ("block: Make CFQ default to IOPS mode on SSDs")
Tested-by: Romain Francoise <romain@orebokech.com>
Signed-off-by: Jens Axboe <axboe@fb.com>
Diffstat (limited to 'block/elevator.c')
-rw-r--r-- | block/elevator.c | 2 |
1 files changed, 2 insertions, 0 deletions
diff --git a/block/elevator.c b/block/elevator.c index 59794d0d38e3..5f0452734a40 100644 --- a/block/elevator.c +++ b/block/elevator.c @@ -810,6 +810,8 @@ int elv_register_queue(struct request_queue *q) } kobject_uevent(&e->kobj, KOBJ_ADD); e->registered = 1; + if (e->type->ops.elevator_registered_fn) + e->type->ops.elevator_registered_fn(q); } return error; } |