Message ID | 20210923134631.105719-6-yukuai3@huawei.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | fix uaf in rq_qos_done_io() | expand |
diff --git a/block/blk-ioprio.c b/block/blk-ioprio.c index 332a07761bf8..55338ebee356 100644 --- a/block/blk-ioprio.c +++ b/block/blk-ioprio.c @@ -212,9 +212,18 @@ static void blkcg_ioprio_exit(struct rq_qos *rqos) kfree(blkioprio_blkg); } +static void blkcg_ioprio_free(struct rq_qos *rqos) +{ + struct blk_ioprio *blkioprio_blkg = + container_of(rqos, typeof(*blkioprio_blkg), rqos); + + kfree(blkioprio_blkg); +} + static struct rq_qos_ops blkcg_ioprio_ops = { .track = blkcg_ioprio_track, .exit = blkcg_ioprio_exit, + .free = blkcg_ioprio_free, }; int blk_ioprio_init(struct request_queue *q)
Prepare to split 'kfree(blkioprio_blkg)' from blkcg_ioprio_exit(), no functional changes. Signed-off-by: Yu Kuai <yukuai3@huawei.com> --- block/blk-ioprio.c | 9 +++++++++ 1 file changed, 9 insertions(+)