Skip to content

Commit 0c9f452

Browse files
owniaJaegeuk Kim
authored andcommitted
f2fs: use common implementation of file type
Use common implementation of file type conversion helpers. Signed-off-by: Weizhao Ouyang <o451686892@gmail.com> Reviewed-by: Chao Yu <chao@kernel.org> Signed-off-by: Jaegeuk Kim <jaegeuk@kernel.org>
1 parent 3094e55 commit 0c9f452

4 files changed

Lines changed: 4 additions & 53 deletions

File tree

fs/f2fs/dir.c

Lines changed: 3 additions & 36 deletions
Original file line numberDiff line numberDiff line change
@@ -42,39 +42,6 @@ static unsigned int bucket_blocks(unsigned int level)
4242
return 4;
4343
}
4444

45-
static unsigned char f2fs_filetype_table[F2FS_FT_MAX] = {
46-
[F2FS_FT_UNKNOWN] = DT_UNKNOWN,
47-
[F2FS_FT_REG_FILE] = DT_REG,
48-
[F2FS_FT_DIR] = DT_DIR,
49-
[F2FS_FT_CHRDEV] = DT_CHR,
50-
[F2FS_FT_BLKDEV] = DT_BLK,
51-
[F2FS_FT_FIFO] = DT_FIFO,
52-
[F2FS_FT_SOCK] = DT_SOCK,
53-
[F2FS_FT_SYMLINK] = DT_LNK,
54-
};
55-
56-
static unsigned char f2fs_type_by_mode[S_IFMT >> S_SHIFT] = {
57-
[S_IFREG >> S_SHIFT] = F2FS_FT_REG_FILE,
58-
[S_IFDIR >> S_SHIFT] = F2FS_FT_DIR,
59-
[S_IFCHR >> S_SHIFT] = F2FS_FT_CHRDEV,
60-
[S_IFBLK >> S_SHIFT] = F2FS_FT_BLKDEV,
61-
[S_IFIFO >> S_SHIFT] = F2FS_FT_FIFO,
62-
[S_IFSOCK >> S_SHIFT] = F2FS_FT_SOCK,
63-
[S_IFLNK >> S_SHIFT] = F2FS_FT_SYMLINK,
64-
};
65-
66-
static void set_de_type(struct f2fs_dir_entry *de, umode_t mode)
67-
{
68-
de->file_type = f2fs_type_by_mode[(mode & S_IFMT) >> S_SHIFT];
69-
}
70-
71-
unsigned char f2fs_get_de_type(struct f2fs_dir_entry *de)
72-
{
73-
if (de->file_type < F2FS_FT_MAX)
74-
return f2fs_filetype_table[de->file_type];
75-
return DT_UNKNOWN;
76-
}
77-
7845
/* If @dir is casefolded, initialize @fname->cf_name from @fname->usr_fname. */
7946
int f2fs_init_casefolded_name(const struct inode *dir,
8047
struct f2fs_filename *fname)
@@ -485,7 +452,7 @@ void f2fs_set_link(struct inode *dir, struct f2fs_dir_entry *de,
485452
lock_page(page);
486453
f2fs_wait_on_page_writeback(page, type, true, true);
487454
de->ino = cpu_to_le32(inode->i_ino);
488-
set_de_type(de, inode->i_mode);
455+
de->file_type = fs_umode_to_ftype(inode->i_mode);
489456
set_page_dirty(page);
490457

491458
dir->i_mtime = dir->i_ctime = current_time(dir);
@@ -699,7 +666,7 @@ void f2fs_update_dentry(nid_t ino, umode_t mode, struct f2fs_dentry_ptr *d,
699666
de->name_len = cpu_to_le16(name->len);
700667
memcpy(d->filename[bit_pos], name->name, name->len);
701668
de->ino = cpu_to_le32(ino);
702-
set_de_type(de, mode);
669+
de->file_type = fs_umode_to_ftype(mode);
703670
for (i = 0; i < slots; i++) {
704671
__set_bit_le(bit_pos + i, (void *)d->bitmap);
705672
/* avoid wrong garbage data for readdir */
@@ -1036,7 +1003,7 @@ int f2fs_fill_dentries(struct dir_context *ctx, struct f2fs_dentry_ptr *d,
10361003
continue;
10371004
}
10381005

1039-
d_type = f2fs_get_de_type(de);
1006+
d_type = fs_ftype_to_dtype(de->file_type);
10401007

10411008
de_name.name = d->filename[bit_pos];
10421009
de_name.len = le16_to_cpu(de->name_len);

fs/f2fs/f2fs.h

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3474,7 +3474,6 @@ int f2fs_get_tmpfile(struct mnt_idmap *idmap, struct inode *dir,
34743474
/*
34753475
* dir.c
34763476
*/
3477-
unsigned char f2fs_get_de_type(struct f2fs_dir_entry *de);
34783477
int f2fs_init_casefolded_name(const struct inode *dir,
34793478
struct f2fs_filename *fname);
34803479
int f2fs_setup_filename(struct inode *dir, const struct qstr *iname,

fs/f2fs/inline.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -497,7 +497,7 @@ static int f2fs_add_inline_entries(struct inode *dir, void *inline_dentry)
497497
fname.hash = de->hash_code;
498498

499499
ino = le32_to_cpu(de->ino);
500-
fake_mode = f2fs_get_de_type(de) << S_SHIFT;
500+
fake_mode = fs_ftype_to_dtype(de->file_type) << S_DT_SHIFT;
501501

502502
err = f2fs_add_regular_entry(dir, &fname, NULL, ino, fake_mode);
503503
if (err)

include/linux/f2fs_fs.h

Lines changed: 0 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -584,21 +584,6 @@ struct f2fs_dentry_block {
584584
__u8 filename[NR_DENTRY_IN_BLOCK][F2FS_SLOT_LEN];
585585
} __packed;
586586

587-
/* file types used in inode_info->flags */
588-
enum {
589-
F2FS_FT_UNKNOWN,
590-
F2FS_FT_REG_FILE,
591-
F2FS_FT_DIR,
592-
F2FS_FT_CHRDEV,
593-
F2FS_FT_BLKDEV,
594-
F2FS_FT_FIFO,
595-
F2FS_FT_SOCK,
596-
F2FS_FT_SYMLINK,
597-
F2FS_FT_MAX
598-
};
599-
600-
#define S_SHIFT 12
601-
602587
#define F2FS_DEF_PROJID 0 /* default project ID */
603588

604589
#endif /* _LINUX_F2FS_FS_H */

0 commit comments

Comments
 (0)