The remaining count should not include successful shrink attempts. Fixes: e7e9a307be9d ("staging: erofs: introduce workstation for decompression") Cc: <stable@xxxxxxxxxxxxxxx> # 4.19+ Signed-off-by: Gao Xiang <gaoxiang25@xxxxxxxxxx> --- Changes since v1: - Add "Fixes:" tags respectively suggested by Eric. I'd suggest no rush to backport PATCH 2/3 and 3/3 since it's not quite sure whether they behave well for normal images for now and I will backport them manually later since they have no impact on system stability with corrupted images; - Fix PATCH 2/3 to exclude legacy (no decompression inplace support, < v5.3) images. fs/erofs/utils.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/fs/erofs/utils.c b/fs/erofs/utils.c index fddc5059c930..df42ea552a44 100644 --- a/fs/erofs/utils.c +++ b/fs/erofs/utils.c @@ -286,7 +286,7 @@ static unsigned long erofs_shrink_scan(struct shrinker *shrink, spin_unlock(&erofs_sb_list_lock); sbi->shrinker_run_no = run_no; - freed += erofs_shrink_workstation(sbi, nr); + freed += erofs_shrink_workstation(sbi, nr - freed); spin_lock(&erofs_sb_list_lock); /* Get the next list element before we move this one */ -- 2.17.1