On 2021/7/9 11:49, wangxiaojun (N) wrote:
在 2021/7/9 11:21, Chao Yu 写道:
On 2021/7/9 10:05, Wang Xiaojun wrote:
When creating a file, we need to set the temperature based on
extension_list. If the empty string is a valid extension_list,
the is_extension_exist will always returns true,
which affects the separation of hot and cold.
Signed-off-by: Wang Xiaojun <[email protected]>
---
fs/f2fs/namei.c | 2 ++
1 file changed, 2 insertions(+)
diff --git a/fs/f2fs/namei.c b/fs/f2fs/namei.c
index a9cd9cf97229..34341d3edb8d 100644
--- a/fs/f2fs/namei.c
+++ b/fs/f2fs/namei.c
@@ -219,6 +219,8 @@ int f2fs_update_extension_list(struct
f2fs_sb_info *sbi, const char *name,
int start, count;
int i;
+ if (!strlen(name))
+ return -EINVAL;
How about adding this in __sbi_store()? like:
if (!strlen(name) || strlen(name) >= F2FS_EXTENSION_LEN)
return -EINVAL;
Otherwise, it looks good to me.
This is an alternative modification. Exception check is more compact here.
But if the f2fs_update_extension_list function is called elsewhere in
the future,
There is other related check of @name in __sbi_store(), so I guess
f2fs_update_extension_list() is coupling to __sbi_store() now.
checking inside the function can avoid this problem.
I was also a little unsure, and finally chose this modification.
I'm fine to move all checks into f2fs_update_extension_list(), but now
it looks more clean to just let the caller do the check on @name.
Thanks,
Reviewed-by: Chao Yu <[email protected]>
Thanks,
if (set) {
if (total_count == F2FS_MAX_EXTENSION)
return -EINVAL;
.
_______________________________________________
Linux-f2fs-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/linux-f2fs-devel