block: always attach cgroup info into bio
blkcg_bio_issue_check() already gets blkcg for a BIO. bio_associate_blkcg() uses a percpu refcounter, so it's a very cheap operation. There is no point we don't attach the cgroup info into bio at blkcg_bio_issue_check. This also makes blktrace outputs correct cgroup info. Acked-by: Tejun Heo <tj@kernel.org> Signed-off-by: Shaohua Li <shli@fb.com> Signed-off-by: Jens Axboe <axboe@kernel.dk>
This commit is contained in:
parent
ca1136c99b
commit
007cc56b7e
|
@ -2104,14 +2104,9 @@ static inline void throtl_update_latency_buckets(struct throtl_data *td)
|
|||
static void blk_throtl_assoc_bio(struct throtl_grp *tg, struct bio *bio)
|
||||
{
|
||||
#ifdef CONFIG_BLK_DEV_THROTTLING_LOW
|
||||
int ret;
|
||||
|
||||
ret = bio_associate_current(bio);
|
||||
if (ret == 0 || ret == -EBUSY)
|
||||
if (bio->bi_css)
|
||||
bio->bi_cg_private = tg;
|
||||
blk_stat_set_issue(&bio->bi_issue_stat, bio_sectors(bio));
|
||||
#else
|
||||
bio_associate_current(bio);
|
||||
#endif
|
||||
}
|
||||
|
||||
|
|
|
@ -691,6 +691,9 @@ static inline bool blkcg_bio_issue_check(struct request_queue *q,
|
|||
rcu_read_lock();
|
||||
blkcg = bio_blkcg(bio);
|
||||
|
||||
/* associate blkcg if bio hasn't attached one */
|
||||
bio_associate_blkcg(bio, &blkcg->css);
|
||||
|
||||
blkg = blkg_lookup(blkcg, q);
|
||||
if (unlikely(!blkg)) {
|
||||
spin_lock_irq(q->queue_lock);
|
||||
|
|
Loading…
Reference in New Issue