On Tue 19-12-23 22:25:08, Jingbo Xu wrote: > Since now bdi->max_ratio is part per million, fix the wrong arithmetic > for max_prop_frac when setting max_ratio. Otherwise the miscalculated > max_prop_frac will affect the incrementing of writeout completion count > when max_ratio is not 100%. > > Fixes: efc3e6ad53ea ("mm: split off __bdi_set_max_ratio() function") > Signed-off-by: Jingbo Xu <jefflexu@xxxxxxxxxxxxxxxxx> Good catch. Feel free to add: Reviewed-by: Jan Kara <jack@xxxxxxx> Honza > --- > mm/page-writeback.c | 3 ++- > 1 file changed, 2 insertions(+), 1 deletion(-) > > diff --git a/mm/page-writeback.c b/mm/page-writeback.c > index 2140382dd768..05e5c425b3ff 100644 > --- a/mm/page-writeback.c > +++ b/mm/page-writeback.c > @@ -728,7 +728,8 @@ static int __bdi_set_max_ratio(struct backing_dev_info *bdi, unsigned int max_ra > ret = -EINVAL; > } else { > bdi->max_ratio = max_ratio; > - bdi->max_prop_frac = (FPROP_FRAC_BASE * max_ratio) / 100; > + bdi->max_prop_frac = (FPROP_FRAC_BASE * max_ratio) / > + (100 * BDI_RATIO_SCALE); > } > spin_unlock_bh(&bdi_lock); > > -- > 2.19.1.6.gb485710b > > -- Jan Kara <jack@xxxxxxxx> SUSE Labs, CR