[<prev] [next>] [day] [month] [year] [list]
Message-Id: <20230117095407.37398-1-frank.li@vivo.com>
Date: Tue, 17 Jan 2023 17:54:07 +0800
From: Yangtao Li <frank.li@...o.com>
To: jaegeuk@...nel.org, chao@...nel.org
Cc: linux-f2fs-devel@...ts.sourceforge.net,
linux-kernel@...r.kernel.org, Yangtao Li <frank.li@...o.com>
Subject: [PATCH] f2fs: fix to check warm_data_age_threshold
hot_data_age_threshold is a non-zero positive number, and
condition 2 includes condition 1, so there is no need to
additionally judge whether t is 0. And we need to judge
whether hot_data_age_threshold exceeds the number of available
blocks.
Fixes: 71644dff4811 ("f2fs: add block_age-based extent cache")
Signed-off-by: Yangtao Li <frank.li@...o.com>
---
fs/f2fs/sysfs.c | 5 ++++-
1 file changed, 4 insertions(+), 1 deletion(-)
diff --git a/fs/f2fs/sysfs.c b/fs/f2fs/sysfs.c
index e396851a6dd1..b59595daf3ef 100644
--- a/fs/f2fs/sysfs.c
+++ b/fs/f2fs/sysfs.c
@@ -689,7 +689,10 @@ static ssize_t __sbi_store(struct f2fs_attr *a,
}
if (!strcmp(a->attr.name, "warm_data_age_threshold")) {
- if (t == 0 || t <= sbi->hot_data_age_threshold)
+ block_t avail_user_block_count;
+
+ avail_user_block_count = sbi->user_block_count - sbi->current_reserved_blocks;
+ if (t <= sbi->hot_data_age_threshold || t >= avail_user_block_count)
return -EINVAL;
if (t == *ui)
return count;
--
2.25.1
Powered by blists - more mailing lists