On Tue 19-12-23 22:25:07, Jingbo Xu wrote: > Since now bdi->min_ratio is part per million, fix the wrong arithmetic. > Otherwise it will fail with -EINVAL when setting a reasonable min_ratio, > as it tries to set min_ratio to (min_ratio * BDI_RATIO_SCALE) in > percentage unit, which exceeds 100% anyway. > > # cat /sys/class/bdi/253\:0/min_ratio > 0 > # cat /sys/class/bdi/253\:0/max_ratio > 100 > # echo 1 > /sys/class/bdi/253\:0/min_ratio > -bash: echo: write error: Invalid argument > > Fixes: 8021fb3232f2 ("mm: split off __bdi_set_min_ratio() function") > Reported-by: Joseph Qi <joseph.qi@xxxxxxxxxxxxxxxxx> > Signed-off-by: Jingbo Xu <jefflexu@xxxxxxxxxxxxxxxxx> Looks good. Feel free to add: Reviewed-by: Jan Kara <jack@xxxxxxx> Honza > --- > mm/page-writeback.c | 1 - > 1 file changed, 1 deletion(-) > > diff --git a/mm/page-writeback.c b/mm/page-writeback.c > index ee2fd6a6af40..2140382dd768 100644 > --- a/mm/page-writeback.c > +++ b/mm/page-writeback.c > @@ -692,7 +692,6 @@ static int __bdi_set_min_ratio(struct backing_dev_info *bdi, unsigned int min_ra > > if (min_ratio > 100 * BDI_RATIO_SCALE) > return -EINVAL; > - min_ratio *= BDI_RATIO_SCALE; > > spin_lock_bh(&bdi_lock); > if (min_ratio > bdi->max_ratio) { > -- > 2.19.1.6.gb485710b > > -- Jan Kara <jack@xxxxxxxx> SUSE Labs, CR