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

Commit 3181faa8 authored by Shaohua Li's avatar Shaohua Li Committed by Jens Axboe
Browse files

cfq-iosched: fix a rcu warning



I got a rcu warnning at boot. the ioc->ioc_data is rcu_deferenced, but
doesn't hold rcu_read_lock.

Signed-off-by: default avatarShaohua Li <shaohua.li@intel.com>
Cc: stable@kernel.org # after ab4bd22d
Signed-off-by: default avatarJens Axboe <jaxboe@fusionio.com>
parent 258e43fd
Loading
Loading
Loading
Loading
+4 −1
Original line number Diff line number Diff line
@@ -2773,11 +2773,14 @@ static void __cfq_exit_single_io_context(struct cfq_data *cfqd,
	smp_wmb();
	cic->key = cfqd_dead_key(cfqd);

	rcu_read_lock();
	if (rcu_dereference(ioc->ioc_data) == cic) {
		rcu_read_unlock();
		spin_lock(&ioc->lock);
		rcu_assign_pointer(ioc->ioc_data, NULL);
		spin_unlock(&ioc->lock);
	}
	} else
		rcu_read_unlock();

	if (cic->cfqq[BLK_RW_ASYNC]) {
		cfq_exit_cfqq(cfqd, cic->cfqq[BLK_RW_ASYNC]);