|
@@ -299,7 +299,7 @@ struct cfq_io_cq {
|
|
|
struct cfq_ttime ttime;
|
|
|
int ioprio; /* the current ioprio */
|
|
|
#ifdef CONFIG_CFQ_GROUP_IOSCHED
|
|
|
- uint64_t blkcg_id; /* the current blkcg ID */
|
|
|
+ uint64_t blkcg_serial_nr; /* the current blkcg serial */
|
|
|
#endif
|
|
|
};
|
|
|
|
|
@@ -3534,17 +3534,17 @@ static void check_blkcg_changed(struct cfq_io_cq *cic, struct bio *bio)
|
|
|
{
|
|
|
struct cfq_data *cfqd = cic_to_cfqd(cic);
|
|
|
struct cfq_queue *sync_cfqq;
|
|
|
- uint64_t id;
|
|
|
+ uint64_t serial_nr;
|
|
|
|
|
|
rcu_read_lock();
|
|
|
- id = bio_blkcg(bio)->id;
|
|
|
+ serial_nr = bio_blkcg(bio)->css.serial_nr;
|
|
|
rcu_read_unlock();
|
|
|
|
|
|
/*
|
|
|
* Check whether blkcg has changed. The condition may trigger
|
|
|
* spuriously on a newly created cic but there's no harm.
|
|
|
*/
|
|
|
- if (unlikely(!cfqd) || likely(cic->blkcg_id == id))
|
|
|
+ if (unlikely(!cfqd) || likely(cic->blkcg_serial_nr == serial_nr))
|
|
|
return;
|
|
|
|
|
|
sync_cfqq = cic_to_cfqq(cic, 1);
|
|
@@ -3558,7 +3558,7 @@ static void check_blkcg_changed(struct cfq_io_cq *cic, struct bio *bio)
|
|
|
cfq_put_queue(sync_cfqq);
|
|
|
}
|
|
|
|
|
|
- cic->blkcg_id = id;
|
|
|
+ cic->blkcg_serial_nr = serial_nr;
|
|
|
}
|
|
|
#else
|
|
|
static inline void check_blkcg_changed(struct cfq_io_cq *cic, struct bio *bio) { }
|