mm: fix arithmetic for max_prop_frac when setting max_ratio

commit fa151a39a6879144b587f35c0dfcc15e1be9450f
Author: Jingbo Xu <jefflexu@linux.alibaba.com>
Date:   Tue Dec 19 22:25:08 2023 +0800

    mm: fix arithmetic for max_prop_frac when setting max_ratio

    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%.

    Link: https://lkml.kernel.org/r/20231219142508.86265-3-jefflexu@linux.alibaba.com
    Fixes: efc3e6ad53ea ("mm: split off __bdi_set_max_ratio() function")
    Signed-off-by: Jingbo Xu <jefflexu@linux.alibaba.com>
    Cc: Joseph Qi <joseph.qi@linux.alibaba.com>
    Cc: Matthew Wilcox (Oracle) <willy@infradead.org>
    Cc: Stefan Roesch <shr@devkernel.io>
    Signed-off-by: Andrew Morton <akpm@linux-foundation.org>

JIRA: https://issues.redhat.com/browse/RHEL-5619
Signed-off-by: Nico Pache <npache@redhat.com>
This commit is contained in:
Nico Pache 2024-04-15 19:04:28 -06:00
parent 6f7322d7cd
commit e7cf2d0fc3
1 changed files with 2 additions and 1 deletions

View File

@ -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);