Lines Matching refs:e

59 	struct elevator_queue *e = q->elevator;  in elv_iosched_allow_merge()  local
61 if (e->type->ops.elevator_allow_merge_fn) in elv_iosched_allow_merge()
62 return e->type->ops.elevator_allow_merge_fn(q, rq, bio); in elv_iosched_allow_merge()
84 struct elevator_type *e; in elevator_find() local
86 list_for_each_entry(e, &elv_list, list) { in elevator_find()
87 if (!strcmp(e->elevator_name, name)) in elevator_find()
88 return e; in elevator_find()
94 static void elevator_put(struct elevator_type *e) in elevator_put() argument
96 module_put(e->elevator_owner); in elevator_put()
101 struct elevator_type *e; in elevator_get() local
105 e = elevator_find(name); in elevator_get()
106 if (!e && try_loading) { in elevator_get()
110 e = elevator_find(name); in elevator_get()
113 if (e && !try_module_get(e->elevator_owner)) in elevator_get()
114 e = NULL; in elevator_get()
118 return e; in elevator_get()
138 struct elevator_type *e; in load_default_elevator_module() local
144 e = elevator_find(chosen_elevator); in load_default_elevator_module()
147 if (!e) in load_default_elevator_module()
154 struct elevator_type *e) in elevator_alloc() argument
162 eq->type = e; in elevator_alloc()
173 struct elevator_queue *e; in elevator_release() local
175 e = container_of(kobj, struct elevator_queue, kobj); in elevator_release()
176 elevator_put(e->type); in elevator_release()
177 kfree(e); in elevator_release()
182 struct elevator_type *e = NULL; in elevator_init() local
200 e = elevator_get(name, true); in elevator_init()
201 if (!e) in elevator_init()
210 if (!e && *chosen_elevator) { in elevator_init()
211 e = elevator_get(chosen_elevator, false); in elevator_init()
212 if (!e) in elevator_init()
217 if (!e) { in elevator_init()
218 e = elevator_get(CONFIG_DEFAULT_IOSCHED, false); in elevator_init()
219 if (!e) { in elevator_init()
223 e = elevator_get("noop", false); in elevator_init()
227 err = e->ops.elevator_init_fn(q, e); in elevator_init()
229 elevator_put(e); in elevator_init()
234 void elevator_exit(struct elevator_queue *e) in elevator_exit() argument
236 mutex_lock(&e->sysfs_lock); in elevator_exit()
237 if (e->type->ops.elevator_exit_fn) in elevator_exit()
238 e->type->ops.elevator_exit_fn(e); in elevator_exit()
239 mutex_unlock(&e->sysfs_lock); in elevator_exit()
241 kobject_put(&e->kobj); in elevator_exit()
259 struct elevator_queue *e = q->elevator; in elv_rqhash_add() local
262 hash_add(e->hash, &rq->hash, rq_hash_key(rq)); in elv_rqhash_add()
274 struct elevator_queue *e = q->elevator; in elv_rqhash_find() local
278 hash_for_each_possible_safe(e->hash, rq, next, hash, offset) { in elv_rqhash_find()
413 struct elevator_queue *e = q->elevator; in elv_merge() local
449 if (e->type->ops.elevator_merge_fn) in elv_merge()
450 return e->type->ops.elevator_merge_fn(q, req, bio); in elv_merge()
499 struct elevator_queue *e = q->elevator; in elv_merged_request() local
501 if (e->type->ops.elevator_merged_fn) in elv_merged_request()
502 e->type->ops.elevator_merged_fn(q, rq, type); in elv_merged_request()
513 struct elevator_queue *e = q->elevator; in elv_merge_requests() local
516 if (next_sorted && e->type->ops.elevator_merge_req_fn) in elv_merge_requests()
517 e->type->ops.elevator_merge_req_fn(q, rq, next); in elv_merge_requests()
532 struct elevator_queue *e = q->elevator; in elv_bio_merged() local
534 if (e->type->ops.elevator_bio_merged_fn) in elv_bio_merged()
535 e->type->ops.elevator_bio_merged_fn(q, rq, bio); in elv_bio_merged()
686 struct elevator_queue *e = q->elevator; in elv_latter_request() local
688 if (e->type->ops.elevator_latter_req_fn) in elv_latter_request()
689 return e->type->ops.elevator_latter_req_fn(q, rq); in elv_latter_request()
695 struct elevator_queue *e = q->elevator; in elv_former_request() local
697 if (e->type->ops.elevator_former_req_fn) in elv_former_request()
698 return e->type->ops.elevator_former_req_fn(q, rq); in elv_former_request()
705 struct elevator_queue *e = q->elevator; in elv_set_request() local
707 if (e->type->ops.elevator_set_req_fn) in elv_set_request()
708 return e->type->ops.elevator_set_req_fn(q, rq, bio, gfp_mask); in elv_set_request()
714 struct elevator_queue *e = q->elevator; in elv_put_request() local
716 if (e->type->ops.elevator_put_req_fn) in elv_put_request()
717 e->type->ops.elevator_put_req_fn(rq); in elv_put_request()
722 struct elevator_queue *e = q->elevator; in elv_may_queue() local
724 if (e->type->ops.elevator_may_queue_fn) in elv_may_queue()
725 return e->type->ops.elevator_may_queue_fn(q, rw); in elv_may_queue()
732 struct elevator_queue *e = q->elevator; in elv_completed_request() local
740 e->type->ops.elevator_completed_req_fn) in elv_completed_request()
741 e->type->ops.elevator_completed_req_fn(q, rq); in elv_completed_request()
751 struct elevator_queue *e; in elv_attr_show() local
757 e = container_of(kobj, struct elevator_queue, kobj); in elv_attr_show()
758 mutex_lock(&e->sysfs_lock); in elv_attr_show()
759 error = e->type ? entry->show(e, page) : -ENOENT; in elv_attr_show()
760 mutex_unlock(&e->sysfs_lock); in elv_attr_show()
769 struct elevator_queue *e; in elv_attr_store() local
775 e = container_of(kobj, struct elevator_queue, kobj); in elv_attr_store()
776 mutex_lock(&e->sysfs_lock); in elv_attr_store()
777 error = e->type ? entry->store(e, page, length) : -ENOENT; in elv_attr_store()
778 mutex_unlock(&e->sysfs_lock); in elv_attr_store()
794 struct elevator_queue *e = q->elevator; in elv_register_queue() local
797 error = kobject_add(&e->kobj, &q->kobj, "%s", "iosched"); in elv_register_queue()
799 struct elv_fs_entry *attr = e->type->elevator_attrs; in elv_register_queue()
802 if (sysfs_create_file(&e->kobj, &attr->attr)) in elv_register_queue()
807 kobject_uevent(&e->kobj, KOBJ_ADD); in elv_register_queue()
808 e->registered = 1; in elv_register_queue()
809 if (e->type->ops.elevator_registered_fn) in elv_register_queue()
810 e->type->ops.elevator_registered_fn(q); in elv_register_queue()
819 struct elevator_queue *e = q->elevator; in elv_unregister_queue() local
821 kobject_uevent(&e->kobj, KOBJ_REMOVE); in elv_unregister_queue()
822 kobject_del(&e->kobj); in elv_unregister_queue()
823 e->registered = 0; in elv_unregister_queue()
828 int elv_register(struct elevator_type *e) in elv_register() argument
833 if (e->icq_size) { in elv_register()
834 if (WARN_ON(e->icq_size < sizeof(struct io_cq)) || in elv_register()
835 WARN_ON(e->icq_align < __alignof__(struct io_cq))) in elv_register()
838 snprintf(e->icq_cache_name, sizeof(e->icq_cache_name), in elv_register()
839 "%s_io_cq", e->elevator_name); in elv_register()
840 e->icq_cache = kmem_cache_create(e->icq_cache_name, e->icq_size, in elv_register()
841 e->icq_align, 0, NULL); in elv_register()
842 if (!e->icq_cache) in elv_register()
848 if (elevator_find(e->elevator_name)) { in elv_register()
850 if (e->icq_cache) in elv_register()
851 kmem_cache_destroy(e->icq_cache); in elv_register()
854 list_add_tail(&e->list, &elv_list); in elv_register()
858 if (!strcmp(e->elevator_name, chosen_elevator) || in elv_register()
860 !strcmp(e->elevator_name, CONFIG_DEFAULT_IOSCHED))) in elv_register()
863 printk(KERN_INFO "io scheduler %s registered%s\n", e->elevator_name, in elv_register()
869 void elv_unregister(struct elevator_type *e) in elv_unregister() argument
873 list_del_init(&e->list); in elv_unregister()
880 if (e->icq_cache) { in elv_unregister()
882 kmem_cache_destroy(e->icq_cache); in elv_unregister()
883 e->icq_cache = NULL; in elv_unregister()
953 struct elevator_type *e; in __elevator_change() local
959 e = elevator_get(strstrip(elevator_name), true); in __elevator_change()
960 if (!e) { in __elevator_change()
966 elevator_put(e); in __elevator_change()
970 return elevator_switch(q, e); in __elevator_change()
1004 struct elevator_queue *e = q->elevator; in elv_iosched_show() local
1012 elv = e->type; in elv_iosched_show()