Message ID | 1739150649-31850-1-git-send-email-zhiguo.niu@unisoc.com (mailing list archive) |
---|---|
State | Accepted |
Commit | bd409934c0619a6c3507891844aeb0c0dca69e18 |
Headers | show |
Series | [f2fs-dev] f2fs: fix to return SHRINK_EMPTY if no objects to free | expand |
On 2/10/25 09:24, Zhiguo Niu wrote: > Quoted from include/linux/shrinker.h > "count_objects should return the number of freeable items in the cache. If > there are no objects to free, it should return SHRINK_EMPTY, while 0 is > returned in cases of the number of freeable items cannot be determined > or shrinker should skip this cache for this time (e.g., their number > is below shrinkable limit)." Seems in 9b996468cfdb ("mm: add SHRINK_EMPTY shrinker methods return value"), it didn't convert most of filesystems, left most filesystems to return 0 which indicate there may have objects to free. :( > > Signed-off-by: Zhiguo Niu <zhiguo.niu@unisoc.com> Reviewed-by: Chao Yu <chao@kernel.org> Thanks,
Hello: This patch was applied to jaegeuk/f2fs.git (dev) by Jaegeuk Kim <jaegeuk@kernel.org>: On Mon, 10 Feb 2025 09:24:09 +0800 you wrote: > Quoted from include/linux/shrinker.h > "count_objects should return the number of freeable items in the cache. If > there are no objects to free, it should return SHRINK_EMPTY, while 0 is > returned in cases of the number of freeable items cannot be determined > or shrinker should skip this cache for this time (e.g., their number > is below shrinkable limit)." > > [...] Here is the summary with links: - [f2fs-dev] f2fs: fix to return SHRINK_EMPTY if no objects to free https://git.kernel.org/jaegeuk/f2fs/c/bd409934c061 You are awesome, thank you!
diff --git a/fs/f2fs/shrinker.c b/fs/f2fs/shrinker.c index 45efff6..9c8d3ae 100644 --- a/fs/f2fs/shrinker.c +++ b/fs/f2fs/shrinker.c @@ -73,7 +73,7 @@ unsigned long f2fs_shrink_count(struct shrinker *shrink, mutex_unlock(&sbi->umount_mutex); } spin_unlock(&f2fs_list_lock); - return count; + return count ?: SHRINK_EMPTY; } unsigned long f2fs_shrink_scan(struct shrinker *shrink,
Quoted from include/linux/shrinker.h "count_objects should return the number of freeable items in the cache. If there are no objects to free, it should return SHRINK_EMPTY, while 0 is returned in cases of the number of freeable items cannot be determined or shrinker should skip this cache for this time (e.g., their number is below shrinkable limit)." Signed-off-by: Zhiguo Niu <zhiguo.niu@unisoc.com> --- fs/f2fs/shrinker.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)