blk-ioprio: Remove unneeded field
authorJan Kara <jack@suse.cz>
Thu, 23 Jun 2022 07:48:31 +0000 (09:48 +0200)
committerJens Axboe <axboe@kernel.dk>
Mon, 27 Jun 2022 12:29:12 +0000 (06:29 -0600)
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.

Reviewed-by: Damien Le Moal <damien.lemoal@opensource.wdc.com>
Tested-by: Damien Le Moal <damien.lemoal@opensource.wdc.com>
Signed-off-by: Jan Kara <jack@suse.cz>
Reviewed-by: Christoph Hellwig <hch@lst.de>
Link: https://lore.kernel.org/r/20220623074840.5960-6-jack@suse.cz
Signed-off-by: Jens Axboe <axboe@kernel.dk>
block/blk-ioprio.c

index 79e797f..3f60558 100644 (file)
@@ -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));