Skip to content

Commit

Permalink
f2fs: compress tmp files given extension
Browse files Browse the repository at this point in the history
Let's compress tmp files for the given extension list.

This patch does not change the previous behavior, but allow the cases as below.

Extention example: "ext"

- abc.ext : allow
- abc.ext.abc : allow
- abc.extm : not allow

Signed-off-by: Jaegeuk Kim <[email protected]>
  • Loading branch information
Jaegeuk Kim committed Jun 13, 2023
1 parent 79e5881 commit 475d3d6
Showing 1 changed file with 11 additions and 7 deletions.
18 changes: 11 additions & 7 deletions fs/f2fs/namei.c
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,7 @@
#include <trace/events/f2fs.h>

static inline bool is_extension_exist(const unsigned char *s, const char *sub,
bool tmp_ext)
bool tmp_ext, bool tmp_dot)
{
size_t slen = strlen(s);
size_t sublen = strlen(sub);
Expand All @@ -49,8 +49,12 @@ static inline bool is_extension_exist(const unsigned char *s, const char *sub,
for (i = 1; i < slen - sublen; i++) {
if (s[i] != '.')
continue;
if (!strncasecmp(s + i + 1, sub, sublen))
return true;
if (!strncasecmp(s + i + 1, sub, sublen)) {
if (!tmp_dot)
return true;
if (i == slen - sublen - 1 || s[i + 1 + sublen] == '.')
return true;
}
}

return false;
Expand Down Expand Up @@ -148,20 +152,20 @@ static void set_compress_new_inode(struct f2fs_sb_info *sbi, struct inode *dir,
cold_count = le32_to_cpu(sbi->raw_super->extension_count);
hot_count = sbi->raw_super->hot_ext_count;
for (i = cold_count; i < cold_count + hot_count; i++)
if (is_extension_exist(name, extlist[i], false))
if (is_extension_exist(name, extlist[i], false, false))
break;
f2fs_up_read(&sbi->sb_lock);
if (i < (cold_count + hot_count))
return;

/* Don't compress unallowed extension. */
for (i = 0; i < noext_cnt; i++)
if (is_extension_exist(name, noext[i], false))
if (is_extension_exist(name, noext[i], false, false))
return;

/* Compress wanting extension. */
for (i = 0; i < ext_cnt; i++) {
if (is_extension_exist(name, ext[i], false)) {
if (is_extension_exist(name, ext[i], true, true)) {
set_compress_context(inode);
return;
}
Expand Down Expand Up @@ -189,7 +193,7 @@ static void set_file_temperature(struct f2fs_sb_info *sbi, struct inode *inode,
cold_count = le32_to_cpu(sbi->raw_super->extension_count);
hot_count = sbi->raw_super->hot_ext_count;
for (i = 0; i < cold_count + hot_count; i++)
if (is_extension_exist(name, extlist[i], true))
if (is_extension_exist(name, extlist[i], true, false))
break;
f2fs_up_read(&sbi->sb_lock);

Expand Down

0 comments on commit 475d3d6

Please sign in to comment.