exfat: remove call ilog2() from exfat_readdir()
There is no need to call ilog2() for the conversions between cluster and dentry in exfat_readdir(), because these conversions can be replaced with EXFAT_DEN_TO_CLU()/EXFAT_CLU_TO_DEN(). Code refinement, no functional changes. Signed-off-by: Yuezhang Mo <Yuezhang.Mo@sony.com> Reviewed-by: Andy Wu <Andy.Wu@sony.com> Reviewed-by: Aoyama Wataru <wataru.aoyama@sony.com> Reviewed-by: Sungjong Seo <sj1557.seo@samsung.com> Signed-off-by: Namjae Jeon <linkinjeon@kernel.org>
This commit is contained in:
parent
f3fe3954c0
commit
088f1343d9
|
@ -61,7 +61,7 @@ static void exfat_get_uniname_from_ext_entry(struct super_block *sb,
|
||||||
/* read a directory entry from the opened directory */
|
/* read a directory entry from the opened directory */
|
||||||
static int exfat_readdir(struct inode *inode, loff_t *cpos, struct exfat_dir_entry *dir_entry)
|
static int exfat_readdir(struct inode *inode, loff_t *cpos, struct exfat_dir_entry *dir_entry)
|
||||||
{
|
{
|
||||||
int i, dentries_per_clu, dentries_per_clu_bits = 0, num_ext;
|
int i, dentries_per_clu, num_ext;
|
||||||
unsigned int type, clu_offset, max_dentries;
|
unsigned int type, clu_offset, max_dentries;
|
||||||
struct exfat_chain dir, clu;
|
struct exfat_chain dir, clu;
|
||||||
struct exfat_uni_name uni_name;
|
struct exfat_uni_name uni_name;
|
||||||
|
@ -83,11 +83,10 @@ static int exfat_readdir(struct inode *inode, loff_t *cpos, struct exfat_dir_ent
|
||||||
EXFAT_B_TO_CLU(i_size_read(inode), sbi), ei->flags);
|
EXFAT_B_TO_CLU(i_size_read(inode), sbi), ei->flags);
|
||||||
|
|
||||||
dentries_per_clu = sbi->dentries_per_clu;
|
dentries_per_clu = sbi->dentries_per_clu;
|
||||||
dentries_per_clu_bits = ilog2(dentries_per_clu);
|
|
||||||
max_dentries = (unsigned int)min_t(u64, MAX_EXFAT_DENTRIES,
|
max_dentries = (unsigned int)min_t(u64, MAX_EXFAT_DENTRIES,
|
||||||
(u64)sbi->num_clusters << dentries_per_clu_bits);
|
(u64)EXFAT_CLU_TO_DEN(sbi->num_clusters, sbi));
|
||||||
|
|
||||||
clu_offset = dentry >> dentries_per_clu_bits;
|
clu_offset = EXFAT_DEN_TO_CLU(dentry, sbi);
|
||||||
exfat_chain_dup(&clu, &dir);
|
exfat_chain_dup(&clu, &dir);
|
||||||
|
|
||||||
if (clu.flags == ALLOC_NO_FAT_CHAIN) {
|
if (clu.flags == ALLOC_NO_FAT_CHAIN) {
|
||||||
|
@ -162,7 +161,7 @@ static int exfat_readdir(struct inode *inode, loff_t *cpos, struct exfat_dir_ent
|
||||||
dir_entry->entry = dentry;
|
dir_entry->entry = dentry;
|
||||||
brelse(bh);
|
brelse(bh);
|
||||||
|
|
||||||
ei->hint_bmap.off = dentry >> dentries_per_clu_bits;
|
ei->hint_bmap.off = EXFAT_DEN_TO_CLU(dentry, sbi);
|
||||||
ei->hint_bmap.clu = clu.dir;
|
ei->hint_bmap.clu = clu.dir;
|
||||||
|
|
||||||
*cpos = EXFAT_DEN_TO_B(dentry + 1 + num_ext);
|
*cpos = EXFAT_DEN_TO_B(dentry + 1 + num_ext);
|
||||||
|
|
|
@ -101,11 +101,17 @@ enum {
|
||||||
/*
|
/*
|
||||||
* helpers for block size to dentry size conversion.
|
* helpers for block size to dentry size conversion.
|
||||||
*/
|
*/
|
||||||
#define EXFAT_B_TO_DEN_IDX(b, sbi) \
|
|
||||||
((b) << ((sbi)->cluster_size_bits - DENTRY_SIZE_BITS))
|
|
||||||
#define EXFAT_B_TO_DEN(b) ((b) >> DENTRY_SIZE_BITS)
|
#define EXFAT_B_TO_DEN(b) ((b) >> DENTRY_SIZE_BITS)
|
||||||
#define EXFAT_DEN_TO_B(b) ((b) << DENTRY_SIZE_BITS)
|
#define EXFAT_DEN_TO_B(b) ((b) << DENTRY_SIZE_BITS)
|
||||||
|
|
||||||
|
/*
|
||||||
|
* helpers for cluster size to dentry size conversion.
|
||||||
|
*/
|
||||||
|
#define EXFAT_CLU_TO_DEN(clu, sbi) \
|
||||||
|
((clu) << ((sbi)->cluster_size_bits - DENTRY_SIZE_BITS))
|
||||||
|
#define EXFAT_DEN_TO_CLU(dentry, sbi) \
|
||||||
|
((dentry) >> ((sbi)->cluster_size_bits - DENTRY_SIZE_BITS))
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* helpers for fat entry.
|
* helpers for fat entry.
|
||||||
*/
|
*/
|
||||||
|
|
Loading…
Reference in New Issue