Skip to content

Commit

Permalink
f2fs: introduce accessor to retrieve number of dentry slots
Browse files Browse the repository at this point in the history
Simplify code by providing the accessor macro to retrieve the
number of dentry slots for a given filename length.

Signed-off-by: Namjae Jeon <namjae.jeon@samsung.com>
Signed-off-by: Amit Sahrawat <a.sahrawat@samsung.com>
  • Loading branch information
Namjae Jeon authored and Jaegeuk Kim committed Dec 11, 2012
1 parent 508198b commit 457d08e
Show file tree
Hide file tree
Showing 2 changed files with 8 additions and 8 deletions.
13 changes: 5 additions & 8 deletions fs/f2fs/dir.c
Original file line number Diff line number Diff line change
Expand Up @@ -99,8 +99,7 @@ static struct f2fs_dir_entry *find_in_block(struct page *dentry_page,
NR_DENTRY_IN_BLOCK, 0);
while (bit_pos < NR_DENTRY_IN_BLOCK) {
de = &dentry_blk->dentry[bit_pos];
slots = (le16_to_cpu(de->name_len) + F2FS_NAME_LEN - 1) /
F2FS_NAME_LEN;
slots = GET_DENTRY_SLOTS(le16_to_cpu(de->name_len));

if (early_match_name(name, namelen, namehash, de)) {
if (!memcmp(dentry_blk->filename[bit_pos],
Expand Down Expand Up @@ -130,7 +129,7 @@ static struct f2fs_dir_entry *find_in_level(struct inode *dir,
unsigned int level, const char *name, int namelen,
f2fs_hash_t namehash, struct page **res_page)
{
int s = (namelen + F2FS_NAME_LEN - 1) / F2FS_NAME_LEN;
int s = GET_DENTRY_SLOTS(namelen);
unsigned int nbucket, nblock;
unsigned int bidx, end_block;
struct page *dentry_page;
Expand Down Expand Up @@ -383,7 +382,7 @@ int f2fs_add_link(struct dentry *dentry, struct inode *inode)
int namelen = dentry->d_name.len;
struct page *dentry_page = NULL;
struct f2fs_dentry_block *dentry_blk = NULL;
int slots = (namelen + F2FS_NAME_LEN - 1) / F2FS_NAME_LEN;
int slots = GET_DENTRY_SLOTS(namelen);
int err = 0;
int i;

Expand Down Expand Up @@ -465,8 +464,7 @@ void f2fs_delete_entry(struct f2fs_dir_entry *dentry, struct page *page,
struct address_space *mapping = page->mapping;
struct inode *dir = mapping->host;
struct f2fs_sb_info *sbi = F2FS_SB(dir->i_sb);
int slots = (le16_to_cpu(dentry->name_len) + F2FS_NAME_LEN - 1) /
F2FS_NAME_LEN;
int slots = GET_DENTRY_SLOTS(le16_to_cpu(dentry->name_len));
void *kaddr = page_address(page);
int i;

Expand Down Expand Up @@ -641,8 +639,7 @@ static int f2fs_readdir(struct file *file, void *dirent, filldir_t filldir)
file->f_pos += bit_pos - start_bit_pos;
goto success;
}
slots = (le16_to_cpu(de->name_len) + F2FS_NAME_LEN - 1)
/ F2FS_NAME_LEN;
slots = GET_DENTRY_SLOTS(le16_to_cpu(de->name_len));
bit_pos += slots;
}
bit_pos = 0;
Expand Down
3 changes: 3 additions & 0 deletions include/linux/f2fs_fs.h
Original file line number Diff line number Diff line change
Expand Up @@ -363,6 +363,9 @@ typedef __le32 f2fs_hash_t;

/* One directory entry slot covers 8bytes-long file name */
#define F2FS_NAME_LEN 8
#define F2FS_NAME_LEN_BITS 3

#define GET_DENTRY_SLOTS(x) ((x + F2FS_NAME_LEN - 1) >> F2FS_NAME_LEN_BITS)

/* the number of dentry in a block */
#define NR_DENTRY_IN_BLOCK 214
Expand Down

0 comments on commit 457d08e

Please sign in to comment.