Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit c51ca6cf authored by Jens Axboe's avatar Jens Axboe
Browse files

block: move existing elevator ops to union



Prep patch for adding MQ ops as well, since doing anon unions with
named initializers doesn't work on older compilers.

Signed-off-by: default avatarJens Axboe <axboe@fb.com>
Reviewed-by: default avatarJohannes Thumshirn <jthumshirn@suse.de>
Reviewed-by: default avatarBart Van Assche <bart.vanassche@sandisk.com>
Reviewed-by: default avatarOmar Sandoval <osandov@fb.com>
parent c5082b70
Loading
Loading
Loading
Loading
+4 −4
Original line number Diff line number Diff line
@@ -43,8 +43,8 @@ static void ioc_exit_icq(struct io_cq *icq)
	if (icq->flags & ICQ_EXITED)
		return;

	if (et->ops.elevator_exit_icq_fn)
		et->ops.elevator_exit_icq_fn(icq);
	if (et->ops.sq.elevator_exit_icq_fn)
		et->ops.sq.elevator_exit_icq_fn(icq);

	icq->flags |= ICQ_EXITED;
}
@@ -383,8 +383,8 @@ struct io_cq *ioc_create_icq(struct io_context *ioc, struct request_queue *q,
	if (likely(!radix_tree_insert(&ioc->icq_tree, q->id, icq))) {
		hlist_add_head(&icq->ioc_node, &ioc->icq_list);
		list_add(&icq->q_node, &q->icq_list);
		if (et->ops.elevator_init_icq_fn)
			et->ops.elevator_init_icq_fn(icq);
		if (et->ops.sq.elevator_init_icq_fn)
			et->ops.sq.elevator_init_icq_fn(icq);
	} else {
		kmem_cache_free(et->icq_cache, icq);
		icq = ioc_lookup_icq(ioc, q);
+2 −2
Original line number Diff line number Diff line
@@ -763,8 +763,8 @@ int blk_attempt_req_merge(struct request_queue *q, struct request *rq,
{
	struct elevator_queue *e = q->elevator;

	if (e->type->ops.elevator_allow_rq_merge_fn)
		if (!e->type->ops.elevator_allow_rq_merge_fn(q, rq, next))
	if (e->type->ops.sq.elevator_allow_rq_merge_fn)
		if (!e->type->ops.sq.elevator_allow_rq_merge_fn(q, rq, next))
			return 0;

	return attempt_merge(q, rq, next);
+5 −5
Original line number Diff line number Diff line
@@ -167,7 +167,7 @@ static inline struct request *__elv_next_request(struct request_queue *q)
			return NULL;
		}
		if (unlikely(blk_queue_bypass(q)) ||
		    !q->elevator->type->ops.elevator_dispatch_fn(q, 0))
		    !q->elevator->type->ops.sq.elevator_dispatch_fn(q, 0))
			return NULL;
	}
}
@@ -176,16 +176,16 @@ static inline void elv_activate_rq(struct request_queue *q, struct request *rq)
{
	struct elevator_queue *e = q->elevator;

	if (e->type->ops.elevator_activate_req_fn)
		e->type->ops.elevator_activate_req_fn(q, rq);
	if (e->type->ops.sq.elevator_activate_req_fn)
		e->type->ops.sq.elevator_activate_req_fn(q, rq);
}

static inline void elv_deactivate_rq(struct request_queue *q, struct request *rq)
{
	struct elevator_queue *e = q->elevator;

	if (e->type->ops.elevator_deactivate_req_fn)
		e->type->ops.elevator_deactivate_req_fn(q, rq);
	if (e->type->ops.sq.elevator_deactivate_req_fn)
		e->type->ops.sq.elevator_deactivate_req_fn(q, rq);
}

#ifdef CONFIG_FAIL_IO_TIMEOUT
+1 −1
Original line number Diff line number Diff line
@@ -4837,7 +4837,7 @@ static struct elv_fs_entry cfq_attrs[] = {
};

static struct elevator_type iosched_cfq = {
	.ops = {
	.ops.sq = {
		.elevator_merge_fn = 		cfq_merge,
		.elevator_merged_fn =		cfq_merged_request,
		.elevator_merge_req_fn =	cfq_merged_requests,
+1 −1
Original line number Diff line number Diff line
@@ -439,7 +439,7 @@ static struct elv_fs_entry deadline_attrs[] = {
};

static struct elevator_type iosched_deadline = {
	.ops = {
	.ops.sq = {
		.elevator_merge_fn = 		deadline_merge,
		.elevator_merged_fn =		deadline_merged_request,
		.elevator_merge_req_fn =	deadline_merged_requests,
Loading