summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--block/bio.c2
-rw-r--r--block/blk-iolatency.c2
-rw-r--r--block/blk-throttle.c8
-rw-r--r--block/bounce.c2
-rw-r--r--include/linux/blk-cgroup.h9
5 files changed, 13 insertions, 10 deletions
diff --git a/block/bio.c b/block/bio.c
index 748d7132f172..80c948da061c 100644
--- a/block/bio.c
+++ b/block/bio.c
@@ -610,6 +610,8 @@ void __bio_clone_fast(struct bio *bio, struct bio *bio_src)
610 bio->bi_io_vec = bio_src->bi_io_vec; 610 bio->bi_io_vec = bio_src->bi_io_vec;
611 611
612 bio_clone_blkcg_association(bio, bio_src); 612 bio_clone_blkcg_association(bio, bio_src);
613
614 blkcg_bio_issue_init(bio);
613} 615}
614EXPORT_SYMBOL(__bio_clone_fast); 616EXPORT_SYMBOL(__bio_clone_fast);
615 617
diff --git a/block/blk-iolatency.c b/block/blk-iolatency.c
index 7337fbc7f850..2d848b2f8b87 100644
--- a/block/blk-iolatency.c
+++ b/block/blk-iolatency.c
@@ -398,8 +398,6 @@ static void blkcg_iolatency_throttle(struct rq_qos *rqos, struct bio *bio,
398 if (!blk_iolatency_enabled(blkiolat)) 398 if (!blk_iolatency_enabled(blkiolat))
399 return; 399 return;
400 400
401 bio_issue_init(&bio->bi_issue, bio_sectors(bio));
402
403 while (blkg && blkg->parent) { 401 while (blkg && blkg->parent) {
404 struct iolatency_grp *iolat = blkg_to_lat(blkg); 402 struct iolatency_grp *iolat = blkg_to_lat(blkg);
405 if (!iolat) { 403 if (!iolat) {
diff --git a/block/blk-throttle.c b/block/blk-throttle.c
index e62ae502891b..4bda70e8db48 100644
--- a/block/blk-throttle.c
+++ b/block/blk-throttle.c
@@ -2115,13 +2115,6 @@ static inline void throtl_update_latency_buckets(struct throtl_data *td)
2115} 2115}
2116#endif 2116#endif
2117 2117
2118static void blk_throtl_assoc_bio(struct throtl_grp *tg, struct bio *bio)
2119{
2120#ifdef CONFIG_BLK_DEV_THROTTLING_LOW
2121 bio_issue_init(&bio->bi_issue, bio_sectors(bio));
2122#endif
2123}
2124
2125bool blk_throtl_bio(struct request_queue *q, struct blkcg_gq *blkg, 2118bool blk_throtl_bio(struct request_queue *q, struct blkcg_gq *blkg,
2126 struct bio *bio) 2119 struct bio *bio)
2127{ 2120{
@@ -2145,7 +2138,6 @@ bool blk_throtl_bio(struct request_queue *q, struct blkcg_gq *blkg,
2145 if (unlikely(blk_queue_bypass(q))) 2138 if (unlikely(blk_queue_bypass(q)))
2146 goto out_unlock; 2139 goto out_unlock;
2147 2140
2148 blk_throtl_assoc_bio(tg, bio);
2149 blk_throtl_update_idletime(tg); 2141 blk_throtl_update_idletime(tg);
2150 2142
2151 sq = &tg->service_queue; 2143 sq = &tg->service_queue;
diff --git a/block/bounce.c b/block/bounce.c
index bc63b3a2d18c..7a08703b1204 100644
--- a/block/bounce.c
+++ b/block/bounce.c
@@ -259,6 +259,8 @@ static struct bio *bounce_clone_bio(struct bio *bio_src, gfp_t gfp_mask,
259 259
260 bio_clone_blkcg_association(bio, bio_src); 260 bio_clone_blkcg_association(bio, bio_src);
261 261
262 blkcg_bio_issue_init(bio);
263
262 return bio; 264 return bio;
263} 265}
264 266
diff --git a/include/linux/blk-cgroup.h b/include/linux/blk-cgroup.h
index 6e33ad1d92b4..a6b6e741a75e 100644
--- a/include/linux/blk-cgroup.h
+++ b/include/linux/blk-cgroup.h
@@ -897,6 +897,12 @@ static inline bool blk_throtl_bio(struct request_queue *q, struct blkcg_gq *blkg
897 struct bio *bio) { return false; } 897 struct bio *bio) { return false; }
898#endif 898#endif
899 899
900
901static inline void blkcg_bio_issue_init(struct bio *bio)
902{
903 bio_issue_init(&bio->bi_issue, bio_sectors(bio));
904}
905
900static inline bool blkcg_bio_issue_check(struct request_queue *q, 906static inline bool blkcg_bio_issue_check(struct request_queue *q,
901 struct bio *bio) 907 struct bio *bio)
902{ 908{
@@ -922,6 +928,8 @@ static inline bool blkcg_bio_issue_check(struct request_queue *q,
922 blkg_rwstat_add(&blkg->stat_ios, bio->bi_opf, 1); 928 blkg_rwstat_add(&blkg->stat_ios, bio->bi_opf, 1);
923 } 929 }
924 930
931 blkcg_bio_issue_init(bio);
932
925 rcu_read_unlock(); 933 rcu_read_unlock();
926 return !throtl; 934 return !throtl;
927} 935}
@@ -1034,6 +1042,7 @@ static inline void blk_put_rl(struct request_list *rl) { }
1034static inline void blk_rq_set_rl(struct request *rq, struct request_list *rl) { } 1042static inline void blk_rq_set_rl(struct request *rq, struct request_list *rl) { }
1035static inline struct request_list *blk_rq_rl(struct request *rq) { return &rq->q->root_rl; } 1043static inline struct request_list *blk_rq_rl(struct request *rq) { return &rq->q->root_rl; }
1036 1044
1045static inline void blkcg_bio_issue_init(struct bio *bio) { }
1037static inline bool blkcg_bio_issue_check(struct request_queue *q, 1046static inline bool blkcg_bio_issue_check(struct request_queue *q,
1038 struct bio *bio) { return true; } 1047 struct bio *bio) { return true; }
1039 1048