Commit 93b80638 authored by Christoph Hellwig's avatar Christoph Hellwig Committed by Jens Axboe
Browse files

blk-cgroup: move rcu locking from blkcg_bio_issue_check to blk_throtl_bio



The only thing in blkcg_bio_issue_check that needs to be under
rcu_read_lock is blk_throtl_bio, so move the locking there.

Acked-by: default avatarTejun Heo <tj@kernel.org>
Signed-off-by: default avatarChristoph Hellwig <hch@lst.de>
Signed-off-by: default avatarJens Axboe <axboe@kernel.dk>
parent 7582f30c
Loading
Loading
Loading
Loading
+2 −1
Original line number Diff line number Diff line
@@ -2168,7 +2168,7 @@ bool blk_throtl_bio(struct request_queue *q, struct blkcg_gq *blkg,
	bool throttled = false;
	struct throtl_data *td = tg->td;

	WARN_ON_ONCE(!rcu_read_lock_held());
	rcu_read_lock();

	/* see throtl_charge_bio() */
	if (bio_flagged(bio, BIO_THROTTLED))
@@ -2273,6 +2273,7 @@ out:
	if (throttled || !td->track_bio_latency)
		bio->bi_issue.value |= BIO_ISSUE_THROTL_SKIP_LATENCY;
#endif
	rcu_read_unlock();
	return throttled;
}

+0 −2
Original line number Diff line number Diff line
@@ -546,7 +546,6 @@ static inline bool blkcg_bio_issue_check(struct request_queue *q,
	struct blkcg_gq *blkg = bio->bi_blkg;
	bool throtl = false;

	rcu_read_lock();
	throtl = blk_throtl_bio(q, blkg, bio);
	if (!throtl) {
		struct blkg_iostat_set *bis;
@@ -582,7 +581,6 @@ static inline bool blkcg_bio_issue_check(struct request_queue *q,

	blkcg_bio_issue_init(bio);

	rcu_read_unlock();
	return !throtl;
}