Lines Matching full:e

63 	struct elevator_queue *e = q->elevator;  in elv_iosched_allow_bio_merge()  local
65 if (e->type->ops.allow_merge) in elv_iosched_allow_bio_merge()
66 return e->type->ops.allow_merge(q, rq, bio); in elv_iosched_allow_bio_merge()
87 * elevator_match - Check whether @e's name or alias matches @name
88 * @e: Scheduler to test
91 * Return true if the elevator @e's name or alias matches @name.
93 static bool elevator_match(const struct elevator_type *e, const char *name) in elevator_match() argument
95 return !strcmp(e->elevator_name, name) || in elevator_match()
96 (e->elevator_alias && !strcmp(e->elevator_alias, name)); in elevator_match()
101 struct elevator_type *e; in __elevator_find() local
103 list_for_each_entry(e, &elv_list, list) in __elevator_find()
104 if (elevator_match(e, name)) in __elevator_find()
105 return e; in __elevator_find()
111 struct elevator_type *e; in elevator_find_get() local
114 e = __elevator_find(name); in elevator_find_get()
115 if (e && (!elevator_tryget(e))) in elevator_find_get()
116 e = NULL; in elevator_find_get()
118 return e; in elevator_find_get()
124 struct elevator_type *e, struct elevator_resources *res) in elevator_alloc() argument
132 __elevator_get(e); in elevator_alloc()
133 eq->type = e; in elevator_alloc()
145 struct elevator_queue *e; in elevator_release() local
147 e = container_of(kobj, struct elevator_queue, kobj); in elevator_release()
148 elevator_put(e->type); in elevator_release()
149 kfree(e); in elevator_release()
154 struct elevator_queue *e = q->elevator; in elevator_exit() local
160 mutex_lock(&e->sysfs_lock); in elevator_exit()
161 blk_mq_exit_sched(q, e); in elevator_exit()
162 mutex_unlock(&e->sysfs_lock); in elevator_exit()
180 struct elevator_queue *e = q->elevator; in elv_rqhash_add() local
183 hash_add(e->hash, &rq->hash, rq_hash_key(rq)); in elv_rqhash_add()
196 struct elevator_queue *e = q->elevator; in elv_rqhash_find() local
200 hash_for_each_possible_safe(e->hash, rq, next, hash, offset) { in elv_rqhash_find()
271 struct elevator_queue *e = q->elevator; in elv_merge() local
310 if (e->type->ops.request_merge) in elv_merge()
311 return e->type->ops.request_merge(q, req, bio); in elv_merge()
365 struct elevator_queue *e = q->elevator; in elv_merged_request() local
367 if (e->type->ops.request_merged) in elv_merged_request()
368 e->type->ops.request_merged(q, rq, type); in elv_merged_request()
379 struct elevator_queue *e = q->elevator; in elv_merge_requests() local
381 if (e->type->ops.requests_merged) in elv_merge_requests()
382 e->type->ops.requests_merged(q, rq, next); in elv_merge_requests()
390 struct elevator_queue *e = q->elevator; in elv_latter_request() local
392 if (e->type->ops.next_request) in elv_latter_request()
393 return e->type->ops.next_request(q, rq); in elv_latter_request()
400 struct elevator_queue *e = q->elevator; in elv_former_request() local
402 if (e->type->ops.former_request) in elv_former_request()
403 return e->type->ops.former_request(q, rq); in elv_former_request()
414 struct elevator_queue *e; in elv_attr_show() local
420 e = container_of(kobj, struct elevator_queue, kobj); in elv_attr_show()
421 mutex_lock(&e->sysfs_lock); in elv_attr_show()
422 if (!test_bit(ELEVATOR_FLAG_DYING, &e->flags)) in elv_attr_show()
423 error = entry->show(e, page); in elv_attr_show()
424 mutex_unlock(&e->sysfs_lock); in elv_attr_show()
433 struct elevator_queue *e; in elv_attr_store() local
439 e = container_of(kobj, struct elevator_queue, kobj); in elv_attr_store()
440 mutex_lock(&e->sysfs_lock); in elv_attr_store()
441 if (!test_bit(ELEVATOR_FLAG_DYING, &e->flags)) in elv_attr_store()
442 error = entry->store(e, page, length); in elv_attr_store()
443 mutex_unlock(&e->sysfs_lock); in elv_attr_store()
458 struct elevator_queue *e, in elv_register_queue() argument
463 error = kobject_add(&e->kobj, &q->disk->queue_kobj, "iosched"); in elv_register_queue()
465 const struct elv_fs_entry *attr = e->type->elevator_attrs; in elv_register_queue()
468 if (sysfs_create_file(&e->kobj, &attr->attr)) in elv_register_queue()
474 kobject_uevent(&e->kobj, KOBJ_ADD); in elv_register_queue()
481 set_bit(ELEVATOR_FLAG_REGISTERED, &e->flags); in elv_register_queue()
487 struct elevator_queue *e) in elv_unregister_queue() argument
489 if (e && test_and_clear_bit(ELEVATOR_FLAG_REGISTERED, &e->flags)) { in elv_unregister_queue()
490 kobject_uevent(&e->kobj, KOBJ_REMOVE); in elv_unregister_queue()
491 kobject_del(&e->kobj); in elv_unregister_queue()
498 int elv_register(struct elevator_type *e) in elv_register() argument
501 if (WARN_ON_ONCE(!e->ops.finish_request)) in elv_register()
504 if (WARN_ON_ONCE(!e->ops.insert_requests || !e->ops.dispatch_request)) in elv_register()
508 if (e->icq_size) { in elv_register()
509 if (WARN_ON(e->icq_size < sizeof(struct io_cq)) || in elv_register()
510 WARN_ON(e->icq_align < __alignof__(struct io_cq))) in elv_register()
513 snprintf(e->icq_cache_name, sizeof(e->icq_cache_name), in elv_register()
514 "%s_io_cq", e->elevator_name); in elv_register()
515 e->icq_cache = kmem_cache_create(e->icq_cache_name, e->icq_size, in elv_register()
516 e->icq_align, 0, NULL); in elv_register()
517 if (!e->icq_cache) in elv_register()
523 if (__elevator_find(e->elevator_name)) { in elv_register()
525 kmem_cache_destroy(e->icq_cache); in elv_register()
528 list_add_tail(&e->list, &elv_list); in elv_register()
531 printk(KERN_INFO "io scheduler %s registered\n", e->elevator_name); in elv_register()
537 void elv_unregister(struct elevator_type *e) in elv_unregister() argument
541 list_del_init(&e->list); in elv_unregister()
548 if (e->icq_cache) { in elv_unregister()
550 kmem_cache_destroy(e->icq_cache); in elv_unregister()
551 e->icq_cache = NULL; in elv_unregister()
612 struct elevator_queue *e; in elv_exit_and_release() local
617 e = q->elevator; in elv_exit_and_release()
621 if (e) { in elv_exit_and_release()
623 kobject_put(&e->kobj); in elv_exit_and_release()
838 struct elevator_type *cur = NULL, *e; in elv_iosched_show() local
850 list_for_each_entry(e, &elv_list, list) { in elv_iosched_show()
851 if (e == cur) in elv_iosched_show()
852 len += sprintf(name+len, "[%s] ", e->elevator_name); in elv_iosched_show()
854 len += sprintf(name+len, "%s ", e->elevator_name); in elv_iosched_show()