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

Commit 478a82b0 authored by Al Viro's avatar Al Viro
Browse files

[PATCH] switch to use of ->key to get cfq_data by cfq_io_context



Signed-off-by: default avatarAl Viro <viro@zeniv.linux.org.uk>
parent 7670876d
Loading
Loading
Loading
Loading
+15 −11
Original line number Original line Diff line number Diff line
@@ -1212,7 +1212,7 @@ static void cfq_free_io_context(struct cfq_io_context *cic)
 */
 */
static void cfq_exit_single_io_context(struct cfq_io_context *cic)
static void cfq_exit_single_io_context(struct cfq_io_context *cic)
{
{
	struct cfq_data *cfqd = cic->cfqq->cfqd;
	struct cfq_data *cfqd = cic->key;
	request_queue_t *q = cfqd->queue;
	request_queue_t *q = cfqd->queue;


	WARN_ON(!irqs_disabled());
	WARN_ON(!irqs_disabled());
@@ -1224,6 +1224,7 @@ static void cfq_exit_single_io_context(struct cfq_io_context *cic)


	cfq_put_queue(cic->cfqq);
	cfq_put_queue(cic->cfqq);
	cic->cfqq = NULL;
	cic->cfqq = NULL;
	cic->key = NULL;
	spin_unlock(q->queue_lock);
	spin_unlock(q->queue_lock);
}
}


@@ -1318,14 +1319,17 @@ static void cfq_init_prio_data(struct cfq_queue *cfqq)
	cfq_clear_cfqq_prio_changed(cfqq);
	cfq_clear_cfqq_prio_changed(cfqq);
}
}


static inline void changed_ioprio(struct cfq_queue *cfqq)
static inline void changed_ioprio(struct cfq_io_context *cic)
{
{
	if (cfqq) {
	struct cfq_data *cfqd = cic->key;
		struct cfq_data *cfqd = cfqq->cfqd;
	struct cfq_queue *cfqq;

	if (cfqd) {
		spin_lock(cfqd->queue->queue_lock);
		spin_lock(cfqd->queue->queue_lock);
		cfqq = cic->cfqq;
		if (cfqq) {
			cfq_mark_cfqq_prio_changed(cfqq);
			cfq_mark_cfqq_prio_changed(cfqq);
			cfq_init_prio_data(cfqq);
			cfq_init_prio_data(cfqq);
		}
		spin_unlock(cfqd->queue->queue_lock);
		spin_unlock(cfqd->queue->queue_lock);
	}
	}
}
}
@@ -1337,10 +1341,10 @@ static int cfq_ioc_set_ioprio(struct io_context *ioc, unsigned int ioprio)
{
{
	struct cfq_io_context *cic = ioc->cic;
	struct cfq_io_context *cic = ioc->cic;


	changed_ioprio(cic->cfqq);
	changed_ioprio(cic);


	list_for_each_entry(cic, &cic->list, list)
	list_for_each_entry(cic, &cic->list, list)
		changed_ioprio(cic->cfqq);
		changed_ioprio(cic);


	return 0;
	return 0;
}
}
@@ -1429,10 +1433,10 @@ cfq_get_io_context(struct cfq_data *cfqd, pid_t pid, gfp_t gfp_mask)
		 * manually increment generic io_context usage count, it
		 * manually increment generic io_context usage count, it
		 * cannot go away since we are already holding one ref to it
		 * cannot go away since we are already holding one ref to it
		 */
		 */
		ioc->cic = cic;
		ioc->set_ioprio = cfq_ioc_set_ioprio;
		cic->ioc = ioc;
		cic->ioc = ioc;
		cic->key = cfqd;
		cic->key = cfqd;
		ioc->set_ioprio = cfq_ioc_set_ioprio;
		ioc->cic = cic;
	} else {
	} else {
		struct cfq_io_context *__cic;
		struct cfq_io_context *__cic;