mirror of
https://github.com/torvalds/linux.git
synced 2026-11-07 06:17:02 +01:00
blk-throttle: don't truncate the cgroup v1 iops limits
tg_set_conf() parses the limit into a u64 and stores the iops ones
through an unsigned int, so anything above UINT_MAX is truncated and a
multiple of 2^32 becomes a limit of 0. The next IO of the group then
divides by it in tg_within_iops_limit().
Clamp to UINT_MAX, which means no limit, like tg_set_limit() does on the
default hierarchy.
Fixes: af133ceb26 ("blkcg: move blkio_group_conf->iops and ->bps to blk-throttle")
Cc: Tejun Heo <tj@kernel.org>
Signed-off-by: Josef Bacik <josef@toxicpanda.com>
Acked-by: Tejun Heo <tj@kernel.org>
Link: https://patch.msgid.link/20261028164415.1262013-4-axboe@kernel.dk
Signed-off-by: Jens Axboe <axboe@kernel.dk>
This commit is contained in:
parent
05ce1df375
commit
7d96874ba8
|
|
@ -1386,7 +1386,8 @@ static ssize_t tg_set_conf(struct kernfs_open_file *of,
|
|||
if (is_u64)
|
||||
*(u64 *)((void *)tg + of_cft(of)->private) = v;
|
||||
else
|
||||
*(unsigned int *)((void *)tg + of_cft(of)->private) = v;
|
||||
*(unsigned int *)((void *)tg + of_cft(of)->private) =
|
||||
min_t(u64, v, UINT_MAX);
|
||||
|
||||
tg_conf_updated(tg, false);
|
||||
ret = 0;
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user