]> git.ipfire.org Git - thirdparty/kernel/stable.git/commitdiff
erofs: correct the remaining shrink objects
authorGao Xiang <gaoxiang25@huawei.com>
Wed, 26 Feb 2020 08:10:06 +0000 (16:10 +0800)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Fri, 17 Apr 2020 14:12:02 +0000 (16:12 +0200)
commit 9d5a09c6f3b5fb85af20e3a34827b5d27d152b34 upstream.

The remaining count should not include successful
shrink attempts.

Fixes: e7e9a307be9d ("staging: erofs: introduce workstation for decompression")
Cc: <stable@vger.kernel.org> # 4.19+
Link: https://lore.kernel.org/r/20200226081008.86348-1-gaoxiang25@huawei.com
Reviewed-by: Chao Yu <yuchao0@huawei.com>
Signed-off-by: Gao Xiang <gaoxiang25@huawei.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
fs/erofs/utils.c

index 1e8e1450d5b07ad3a1956b6836ef07435da12b55..2a09c1e8e53923e20a1791f23529154cc49a8eb4 100644 (file)
@@ -293,7 +293,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 */