aboutsummaryrefslogtreecommitdiffstats
path: root/block/cfq-iosched.c
diff options
context:
space:
mode:
Diffstat (limited to 'block/cfq-iosched.c')
-rw-r--r--block/cfq-iosched.c25
1 files changed, 14 insertions, 11 deletions
diff --git a/block/cfq-iosched.c b/block/cfq-iosched.c
index d02f0ae9637..08db2fc70c2 100644
--- a/block/cfq-iosched.c
+++ b/block/cfq-iosched.c
@@ -4157,7 +4157,6 @@ static struct blkio_policy_type blkio_policy_cfq = {
4157 .blkio_init_group_fn = cfq_init_blkio_group, 4157 .blkio_init_group_fn = cfq_init_blkio_group,
4158 .blkio_reset_group_stats_fn = cfqg_stats_reset, 4158 .blkio_reset_group_stats_fn = cfqg_stats_reset,
4159 }, 4159 },
4160 .plid = BLKIO_POLICY_PROP,
4161 .pdata_size = sizeof(struct cfq_group), 4160 .pdata_size = sizeof(struct cfq_group),
4162 .cftypes = cfq_blkcg_files, 4161 .cftypes = cfq_blkcg_files,
4163}; 4162};
@@ -4181,27 +4180,31 @@ static int __init cfq_init(void)
4181#else 4180#else
4182 cfq_group_idle = 0; 4181 cfq_group_idle = 0;
4183#endif 4182#endif
4183
4184 ret = blkio_policy_register(&blkio_policy_cfq);
4185 if (ret)
4186 return ret;
4187
4184 cfq_pool = KMEM_CACHE(cfq_queue, 0); 4188 cfq_pool = KMEM_CACHE(cfq_queue, 0);
4185 if (!cfq_pool) 4189 if (!cfq_pool)
4186 return -ENOMEM; 4190 goto err_pol_unreg;
4187 4191
4188 ret = elv_register(&iosched_cfq); 4192 ret = elv_register(&iosched_cfq);
4189 if (ret) { 4193 if (ret)
4190 kmem_cache_destroy(cfq_pool); 4194 goto err_free_pool;
4191 return ret;
4192 }
4193 4195
4194#ifdef CONFIG_CFQ_GROUP_IOSCHED
4195 blkio_policy_register(&blkio_policy_cfq);
4196#endif
4197 return 0; 4196 return 0;
4197
4198err_free_pool:
4199 kmem_cache_destroy(cfq_pool);
4200err_pol_unreg:
4201 blkio_policy_unregister(&blkio_policy_cfq);
4202 return ret;
4198} 4203}
4199 4204
4200static void __exit cfq_exit(void) 4205static void __exit cfq_exit(void)
4201{ 4206{
4202#ifdef CONFIG_CFQ_GROUP_IOSCHED
4203 blkio_policy_unregister(&blkio_policy_cfq); 4207 blkio_policy_unregister(&blkio_policy_cfq);
4204#endif
4205 elv_unregister(&iosched_cfq); 4208 elv_unregister(&iosched_cfq);
4206 kmem_cache_destroy(cfq_pool); 4209 kmem_cache_destroy(cfq_pool);
4207} 4210}