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

Commit 26a2ac00 authored by Jens Axboe's avatar Jens Axboe
Browse files

cfq-iosched: clear ->prio_trees[] on cfqd alloc



Not strictly needed, but we should make it clear that we init the
rbtree roots here.

Signed-off-by: default avatarJens Axboe <jens.axboe@oracle.com>
parent 17d5c8ca
Loading
Loading
Loading
Loading
+10 −0
Original line number Original line Diff line number Diff line
@@ -2446,12 +2446,22 @@ static void cfq_exit_queue(struct elevator_queue *e)
static void *cfq_init_queue(struct request_queue *q)
static void *cfq_init_queue(struct request_queue *q)
{
{
	struct cfq_data *cfqd;
	struct cfq_data *cfqd;
	int i;


	cfqd = kmalloc_node(sizeof(*cfqd), GFP_KERNEL | __GFP_ZERO, q->node);
	cfqd = kmalloc_node(sizeof(*cfqd), GFP_KERNEL | __GFP_ZERO, q->node);
	if (!cfqd)
	if (!cfqd)
		return NULL;
		return NULL;


	cfqd->service_tree = CFQ_RB_ROOT;
	cfqd->service_tree = CFQ_RB_ROOT;

	/*
	 * Not strictly needed (since RB_ROOT just clears the node and we
	 * zeroed cfqd on alloc), but better be safe in case someone decides
	 * to add magic to the rb code
	 */
	for (i = 0; i < CFQ_PRIO_LISTS; i++)
		cfqd->prio_trees[i] = RB_ROOT;

	INIT_LIST_HEAD(&cfqd->cic_list);
	INIT_LIST_HEAD(&cfqd->cic_list);


	cfqd->queue = q;
	cfqd->queue = q;