On 6/21/22 01:11, Jan Kara wrote: > blkcg->ioprio_set field is not really useful except for avoiding > possibly more expensive checks inside blkcg_ioprio_track(). The check > for blkcg->prio_policy being equal to POLICY_NO_CHANGE does the same > service so just remove the ioprio_set field and replace the check. > > Signed-off-by: Jan Kara <jack@xxxxxxx> Looks good to me. Reviewed-by: Damien Le Moal <damien.lemoal@xxxxxxxxxxxxxxxxxx> > --- > block/blk-ioprio.c | 9 +++------ > 1 file changed, 3 insertions(+), 6 deletions(-) > > diff --git a/block/blk-ioprio.c b/block/blk-ioprio.c > index 79e797f5d194..3f605583598b 100644 > --- a/block/blk-ioprio.c > +++ b/block/blk-ioprio.c > @@ -62,7 +62,6 @@ struct ioprio_blkg { > struct ioprio_blkcg { > struct blkcg_policy_data cpd; > enum prio_policy prio_policy; > - bool prio_set; > }; > > static inline struct ioprio_blkg *pd_to_ioprio(struct blkg_policy_data *pd) > @@ -113,7 +112,6 @@ static ssize_t ioprio_set_prio_policy(struct kernfs_open_file *of, char *buf, > if (ret < 0) > return ret; > blkcg->prio_policy = ret; > - blkcg->prio_set = true; > return nbytes; > } > > @@ -193,16 +191,15 @@ static void blkcg_ioprio_track(struct rq_qos *rqos, struct request *rq, > struct ioprio_blkcg *blkcg = ioprio_blkcg_from_bio(bio); > u16 prio; > > - if (!blkcg->prio_set) > + if (blkcg->prio_policy == POLICY_NO_CHANGE) > return; > > /* > * Except for IOPRIO_CLASS_NONE, higher I/O priority numbers > * correspond to a lower priority. Hence, the max_t() below selects > * the lower priority of bi_ioprio and the cgroup I/O priority class. > - * If the cgroup policy has been set to POLICY_NO_CHANGE == 0, the > - * bio I/O priority is not modified. If the bio I/O priority equals > - * IOPRIO_CLASS_NONE, the cgroup I/O priority is assigned to the bio. > + * If the bio I/O priority equals IOPRIO_CLASS_NONE, the cgroup I/O > + * priority is assigned to the bio. > */ > prio = max_t(u16, bio->bi_ioprio, > IOPRIO_PRIO_VALUE(blkcg->prio_policy, 0)); -- Damien Le Moal Western Digital Research