On Thu, Oct 20, 2016 at 8:12 AM, Christoph Hellwig <hch@xxxxxx> wrote: > It's the last bio-only REQ_* flag, and we have space for it in the bio > bi_flags field. > > Signed-off-by: Christoph Hellwig <hch@xxxxxx> > --- > block/blk-throttle.c | 10 +++++----- > include/linux/blk_types.h | 8 ++------ > 2 files changed, 7 insertions(+), 11 deletions(-) > > diff --git a/block/blk-throttle.c b/block/blk-throttle.c > index a3ea826..a6bb4fe 100644 > --- a/block/blk-throttle.c > +++ b/block/blk-throttle.c > @@ -818,13 +818,13 @@ static void throtl_charge_bio(struct throtl_grp *tg, struct bio *bio) > tg->io_disp[rw]++; > > /* > - * REQ_THROTTLED is used to prevent the same bio to be throttled > + * BIO_THROTTLED is used to prevent the same bio to be throttled > * more than once as a throttled bio will go through blk-throtl the > * second time when it eventually gets issued. Set it when a bio > * is being charged to a tg. > */ > - if (!(bio->bi_opf & REQ_THROTTLED)) > - bio->bi_opf |= REQ_THROTTLED; > + if (!bio_flagged(bio, BIO_THROTTLED)) > + bio_set_flag(bio, BIO_THROTTLED); > } > > /** > @@ -1401,7 +1401,7 @@ bool blk_throtl_bio(struct request_queue *q, struct blkcg_gq *blkg, > WARN_ON_ONCE(!rcu_read_lock_held()); > > /* see throtl_charge_bio() */ > - if ((bio->bi_opf & REQ_THROTTLED) || !tg->has_rules[rw]) > + if (bio_flagged(bio, BIO_THROTTLED) || !tg->has_rules[rw]) > goto out; > > spin_lock_irq(q->queue_lock); > @@ -1480,7 +1480,7 @@ bool blk_throtl_bio(struct request_queue *q, struct blkcg_gq *blkg, > * being issued. > */ > if (!throttled) > - bio->bi_opf &= ~REQ_THROTTLED; > + bio_clear_flag(bio, BIO_THROTTLED); > return throttled; > } > > diff --git a/include/linux/blk_types.h b/include/linux/blk_types.h > index 44f9bca..6df722d 100644 > --- a/include/linux/blk_types.h > +++ b/include/linux/blk_types.h > @@ -119,6 +119,8 @@ struct bio { > #define BIO_QUIET 6 /* Make BIO Quiet */ > #define BIO_CHAIN 7 /* chained bio, ->bi_remaining in effect */ > #define BIO_REFFED 8 /* bio has elevated ->bi_cnt */ > +#define BIO_THROTTLED 9 /* This bio has already been subjected to > + * throttling rules. Don't do it again. */ > > /* > * Flags starting here get preserved by bio_reset() - this includes > @@ -165,10 +167,6 @@ enum rq_flag_bits { > __REQ_PREFLUSH, /* request for cache flush */ > __REQ_RAHEAD, /* read ahead, can fail anytime */ > > - /* bio only flags */ > - __REQ_THROTTLED, /* This bio has already been subjected to > - * throttling rules. Don't do it again. */ > - > /* request only flags */ > __REQ_SORTED, /* elevator knows about this request */ > __REQ_SOFTBARRIER, /* may not be passed by ioscheduler */ > @@ -213,8 +211,6 @@ enum rq_flag_bits { > (REQ_NOMERGE | REQ_STARTED | REQ_SOFTBARRIER | REQ_PREFLUSH | REQ_FUA | REQ_FLUSH_SEQ) > > #define REQ_RAHEAD (1ULL << __REQ_RAHEAD) > -#define REQ_THROTTLED (1ULL << __REQ_THROTTLED) > - > #define REQ_SORTED (1ULL << __REQ_SORTED) > #define REQ_SOFTBARRIER (1ULL << __REQ_SOFTBARRIER) > #define REQ_FUA (1ULL << __REQ_FUA) > -- > 2.1.4 Reviewed-by: Shaun Tancheff <shaun.tancheff@xxxxxxxxxxx> > > -- > To unsubscribe from this list: send the line "unsubscribe linux-block" in > the body of a message to majordomo@xxxxxxxxxxxxxxx > More majordomo info at https://urldefense.proofpoint.com/v2/url?u=http-3A__vger.kernel.org_majordomo-2Dinfo.html&d=DQIBAg&c=IGDlg0lD0b-nebmJJ0Kp8A&r=Wg5NqlNlVTT7Ugl8V50qIHLe856QW0qfG3WVYGOrWzA&m=vdttsJHZ_74ySmGvUQGDoLiS8hCkVc7DWtTXD9anZHo&s=n-MuaL5Z-HhM5HniQEMNsXpIC7OqTDVe6Z3_iIfvKo0&e= -- Shaun Tancheff -- To unsubscribe from this list: send the line "unsubscribe linux-block" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html