summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorChen Linxuan <chenlinxuan@uniontech.com>2025-01-16 16:33:02 +0800
committerGao Xiang <hsiangkao@linux.alibaba.com>2025-01-17 03:24:30 +0800
commit41fb0fabc40113769ce53ea85ffd1f4bc87ae03a (patch)
tree8a1647c9f933ef76129f7399f940094b024db6fa
parente180b8c4c23beb876927a999c49c18b361fa7975 (diff)
erofs: return SHRINK_EMPTY if no objects to free
Comments in file include/linux/shrinker.h says that `count_objects` of `struct shrinker` should return SHRINK_EMPTY when there are no objects to free. > 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: Chen Linxuan <chenlinxuan@uniontech.com> Reviewed-by: Gao Xiang <hsiangkao@linux.alibaba.com> Link: https://lore.kernel.org/r/149E6E64B5B6B5E8+20250116083303.199817-1-chenlinxuan@uniontech.com [ Gao Xiang: should have no impact since it's not memcg-aware. ] Signed-off-by: Gao Xiang <hsiangkao@linux.alibaba.com>
-rw-r--r--fs/erofs/zutil.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/fs/erofs/zutil.c b/fs/erofs/zutil.c
index 0dd65cefce33..83fbcab70a92 100644
--- a/fs/erofs/zutil.c
+++ b/fs/erofs/zutil.c
@@ -243,7 +243,7 @@ void erofs_shrinker_unregister(struct super_block *sb)
static unsigned long erofs_shrink_count(struct shrinker *shrink,
struct shrink_control *sc)
{
- return atomic_long_read(&erofs_global_shrink_cnt);
+ return atomic_long_read(&erofs_global_shrink_cnt) ?: SHRINK_EMPTY;
}
static unsigned long erofs_shrink_scan(struct shrinker *shrink,