diff --git a/block/cfq-iosched.c b/block/cfq-iosched.c
index fd566c1e2617f8ff464defab7684ea865787655f..ae21919f15e1edf2ea6880efc6d5d43deae7fd9f 100644
--- a/block/cfq-iosched.c
+++ b/block/cfq-iosched.c
@@ -3087,7 +3087,8 @@ cfq_drop_dead_cic(struct cfq_data *cfqd, struct io_context *ioc,
 
 	spin_lock_irqsave(&ioc->lock, flags);
 
-	BUG_ON(ioc->ioc_data == cic);
+	BUG_ON(rcu_dereference_check(ioc->ioc_data,
+		lockdep_is_held(&ioc->lock)) == cic);
 
 	radix_tree_delete(&ioc->radix_root, cfqd->cic_index);
 	hlist_del_rcu(&cic->cic_list);