提交 4074fe37 编写于 作者: E Eric Sandeen 提交者: Theodore Ts'o

ext4: remove #ifdef CONFIG_EXT4_INDEX

CONFIG_EXT4_INDEX is not an exposed config option in the kernel, and it is
unconditionally defined in ext4_fs.h.  tune2fs is already able to turn off
dir indexing, so at this point it's just cluttering up the code.  Remove
it.
Signed-off-by: NEric Sandeen <sandeen@redhat.com>
Signed-off-by: NMingming Cao <cmm@us.ibm.com>
Signed-off-by: N"Theodore Ts'o" <tytso@mit.edu>
Signed-off-by: NAndrew Morton <akpm@linux-foundation.org>
上级 f077d0d7
...@@ -47,9 +47,7 @@ const struct file_operations ext4_dir_operations = { ...@@ -47,9 +47,7 @@ const struct file_operations ext4_dir_operations = {
.compat_ioctl = ext4_compat_ioctl, .compat_ioctl = ext4_compat_ioctl,
#endif #endif
.fsync = ext4_sync_file, /* BKL held */ .fsync = ext4_sync_file, /* BKL held */
#ifdef CONFIG_EXT4_INDEX
.release = ext4_release_dir, .release = ext4_release_dir,
#endif
}; };
...@@ -107,7 +105,6 @@ static int ext4_readdir(struct file * filp, ...@@ -107,7 +105,6 @@ static int ext4_readdir(struct file * filp,
sb = inode->i_sb; sb = inode->i_sb;
#ifdef CONFIG_EXT4_INDEX
if (EXT4_HAS_COMPAT_FEATURE(inode->i_sb, if (EXT4_HAS_COMPAT_FEATURE(inode->i_sb,
EXT4_FEATURE_COMPAT_DIR_INDEX) && EXT4_FEATURE_COMPAT_DIR_INDEX) &&
((EXT4_I(inode)->i_flags & EXT4_INDEX_FL) || ((EXT4_I(inode)->i_flags & EXT4_INDEX_FL) ||
...@@ -123,7 +120,6 @@ static int ext4_readdir(struct file * filp, ...@@ -123,7 +120,6 @@ static int ext4_readdir(struct file * filp,
*/ */
EXT4_I(filp->f_path.dentry->d_inode)->i_flags &= ~EXT4_INDEX_FL; EXT4_I(filp->f_path.dentry->d_inode)->i_flags &= ~EXT4_INDEX_FL;
} }
#endif
stored = 0; stored = 0;
offset = filp->f_pos & (sb->s_blocksize - 1); offset = filp->f_pos & (sb->s_blocksize - 1);
...@@ -232,7 +228,6 @@ static int ext4_readdir(struct file * filp, ...@@ -232,7 +228,6 @@ static int ext4_readdir(struct file * filp,
return ret; return ret;
} }
#ifdef CONFIG_EXT4_INDEX
/* /*
* These functions convert from the major/minor hash to an f_pos * These functions convert from the major/minor hash to an f_pos
* value. * value.
...@@ -518,5 +513,3 @@ static int ext4_release_dir (struct inode * inode, struct file * filp) ...@@ -518,5 +513,3 @@ static int ext4_release_dir (struct inode * inode, struct file * filp)
return 0; return 0;
} }
#endif
...@@ -144,7 +144,6 @@ struct dx_map_entry ...@@ -144,7 +144,6 @@ struct dx_map_entry
u16 size; u16 size;
}; };
#ifdef CONFIG_EXT4_INDEX
static inline unsigned dx_get_block (struct dx_entry *entry); static inline unsigned dx_get_block (struct dx_entry *entry);
static void dx_set_block (struct dx_entry *entry, unsigned value); static void dx_set_block (struct dx_entry *entry, unsigned value);
static inline unsigned dx_get_hash (struct dx_entry *entry); static inline unsigned dx_get_hash (struct dx_entry *entry);
...@@ -766,8 +765,6 @@ static void dx_insert_block(struct dx_frame *frame, u32 hash, u32 block) ...@@ -766,8 +765,6 @@ static void dx_insert_block(struct dx_frame *frame, u32 hash, u32 block)
dx_set_block(new, block); dx_set_block(new, block);
dx_set_count(entries, count + 1); dx_set_count(entries, count + 1);
} }
#endif
static void ext4_update_dx_flag(struct inode *inode) static void ext4_update_dx_flag(struct inode *inode)
{ {
...@@ -869,7 +866,6 @@ static struct buffer_head * ext4_find_entry (struct dentry *dentry, ...@@ -869,7 +866,6 @@ static struct buffer_head * ext4_find_entry (struct dentry *dentry,
name = dentry->d_name.name; name = dentry->d_name.name;
if (namelen > EXT4_NAME_LEN) if (namelen > EXT4_NAME_LEN)
return NULL; return NULL;
#ifdef CONFIG_EXT4_INDEX
if (is_dx(dir)) { if (is_dx(dir)) {
bh = ext4_dx_find_entry(dentry, res_dir, &err); bh = ext4_dx_find_entry(dentry, res_dir, &err);
/* /*
...@@ -881,7 +877,6 @@ static struct buffer_head * ext4_find_entry (struct dentry *dentry, ...@@ -881,7 +877,6 @@ static struct buffer_head * ext4_find_entry (struct dentry *dentry,
return bh; return bh;
dxtrace(printk("ext4_find_entry: dx failed, falling back\n")); dxtrace(printk("ext4_find_entry: dx failed, falling back\n"));
} }
#endif
nblocks = dir->i_size >> EXT4_BLOCK_SIZE_BITS(sb); nblocks = dir->i_size >> EXT4_BLOCK_SIZE_BITS(sb);
start = EXT4_I(dir)->i_dir_start_lookup; start = EXT4_I(dir)->i_dir_start_lookup;
if (start >= nblocks) if (start >= nblocks)
...@@ -957,7 +952,6 @@ static struct buffer_head * ext4_find_entry (struct dentry *dentry, ...@@ -957,7 +952,6 @@ static struct buffer_head * ext4_find_entry (struct dentry *dentry,
return ret; return ret;
} }
#ifdef CONFIG_EXT4_INDEX
static struct buffer_head * ext4_dx_find_entry(struct dentry *dentry, static struct buffer_head * ext4_dx_find_entry(struct dentry *dentry,
struct ext4_dir_entry_2 **res_dir, int *err) struct ext4_dir_entry_2 **res_dir, int *err)
{ {
...@@ -1025,7 +1019,6 @@ static struct buffer_head * ext4_dx_find_entry(struct dentry *dentry, ...@@ -1025,7 +1019,6 @@ static struct buffer_head * ext4_dx_find_entry(struct dentry *dentry,
dx_release (frames); dx_release (frames);
return NULL; return NULL;
} }
#endif
static struct dentry *ext4_lookup(struct inode * dir, struct dentry *dentry, struct nameidata *nd) static struct dentry *ext4_lookup(struct inode * dir, struct dentry *dentry, struct nameidata *nd)
{ {
...@@ -1121,7 +1114,6 @@ static inline void ext4_set_de_type(struct super_block *sb, ...@@ -1121,7 +1114,6 @@ static inline void ext4_set_de_type(struct super_block *sb,
de->file_type = ext4_type_by_mode[(mode & S_IFMT)>>S_SHIFT]; de->file_type = ext4_type_by_mode[(mode & S_IFMT)>>S_SHIFT];
} }
#ifdef CONFIG_EXT4_INDEX
/* /*
* Move count entries from end of map between two memory locations. * Move count entries from end of map between two memory locations.
* Returns pointer to last entry moved. * Returns pointer to last entry moved.
...@@ -1266,8 +1258,6 @@ static struct ext4_dir_entry_2 *do_split(handle_t *handle, struct inode *dir, ...@@ -1266,8 +1258,6 @@ static struct ext4_dir_entry_2 *do_split(handle_t *handle, struct inode *dir,
*error = err; *error = err;
return NULL; return NULL;
} }
#endif
/* /*
* Add a new entry into a directory (leaf) block. If de is non-NULL, * Add a new entry into a directory (leaf) block. If de is non-NULL,
...@@ -1364,7 +1354,6 @@ static int add_dirent_to_buf(handle_t *handle, struct dentry *dentry, ...@@ -1364,7 +1354,6 @@ static int add_dirent_to_buf(handle_t *handle, struct dentry *dentry,
return 0; return 0;
} }
#ifdef CONFIG_EXT4_INDEX
/* /*
* This converts a one block unindexed directory to a 3 block indexed * This converts a one block unindexed directory to a 3 block indexed
* directory, and adds the dentry to the indexed directory. * directory, and adds the dentry to the indexed directory.
...@@ -1443,7 +1432,6 @@ static int make_indexed_dir(handle_t *handle, struct dentry *dentry, ...@@ -1443,7 +1432,6 @@ static int make_indexed_dir(handle_t *handle, struct dentry *dentry,
return add_dirent_to_buf(handle, dentry, inode, de, bh); return add_dirent_to_buf(handle, dentry, inode, de, bh);
} }
#endif
/* /*
* ext4_add_entry() * ext4_add_entry()
...@@ -1464,9 +1452,7 @@ static int ext4_add_entry (handle_t *handle, struct dentry *dentry, ...@@ -1464,9 +1452,7 @@ static int ext4_add_entry (handle_t *handle, struct dentry *dentry,
struct ext4_dir_entry_2 *de; struct ext4_dir_entry_2 *de;
struct super_block * sb; struct super_block * sb;
int retval; int retval;
#ifdef CONFIG_EXT4_INDEX
int dx_fallback=0; int dx_fallback=0;
#endif
unsigned blocksize; unsigned blocksize;
u32 block, blocks; u32 block, blocks;
...@@ -1474,7 +1460,6 @@ static int ext4_add_entry (handle_t *handle, struct dentry *dentry, ...@@ -1474,7 +1460,6 @@ static int ext4_add_entry (handle_t *handle, struct dentry *dentry,
blocksize = sb->s_blocksize; blocksize = sb->s_blocksize;
if (!dentry->d_name.len) if (!dentry->d_name.len)
return -EINVAL; return -EINVAL;
#ifdef CONFIG_EXT4_INDEX
if (is_dx(dir)) { if (is_dx(dir)) {
retval = ext4_dx_add_entry(handle, dentry, inode); retval = ext4_dx_add_entry(handle, dentry, inode);
if (!retval || (retval != ERR_BAD_DX_DIR)) if (!retval || (retval != ERR_BAD_DX_DIR))
...@@ -1483,7 +1468,6 @@ static int ext4_add_entry (handle_t *handle, struct dentry *dentry, ...@@ -1483,7 +1468,6 @@ static int ext4_add_entry (handle_t *handle, struct dentry *dentry,
dx_fallback++; dx_fallback++;
ext4_mark_inode_dirty(handle, dir); ext4_mark_inode_dirty(handle, dir);
} }
#endif
blocks = dir->i_size >> sb->s_blocksize_bits; blocks = dir->i_size >> sb->s_blocksize_bits;
for (block = 0, offset = 0; block < blocks; block++) { for (block = 0, offset = 0; block < blocks; block++) {
bh = ext4_bread(handle, dir, block, 0, &retval); bh = ext4_bread(handle, dir, block, 0, &retval);
...@@ -1493,11 +1477,9 @@ static int ext4_add_entry (handle_t *handle, struct dentry *dentry, ...@@ -1493,11 +1477,9 @@ static int ext4_add_entry (handle_t *handle, struct dentry *dentry,
if (retval != -ENOSPC) if (retval != -ENOSPC)
return retval; return retval;
#ifdef CONFIG_EXT4_INDEX
if (blocks == 1 && !dx_fallback && if (blocks == 1 && !dx_fallback &&
EXT4_HAS_COMPAT_FEATURE(sb, EXT4_FEATURE_COMPAT_DIR_INDEX)) EXT4_HAS_COMPAT_FEATURE(sb, EXT4_FEATURE_COMPAT_DIR_INDEX))
return make_indexed_dir(handle, dentry, inode, bh); return make_indexed_dir(handle, dentry, inode, bh);
#endif
brelse(bh); brelse(bh);
} }
bh = ext4_append(handle, dir, &block, &retval); bh = ext4_append(handle, dir, &block, &retval);
...@@ -1509,7 +1491,6 @@ static int ext4_add_entry (handle_t *handle, struct dentry *dentry, ...@@ -1509,7 +1491,6 @@ static int ext4_add_entry (handle_t *handle, struct dentry *dentry,
return add_dirent_to_buf(handle, dentry, inode, de, bh); return add_dirent_to_buf(handle, dentry, inode, de, bh);
} }
#ifdef CONFIG_EXT4_INDEX
/* /*
* Returns 0 for success, or a negative error value * Returns 0 for success, or a negative error value
*/ */
...@@ -1644,7 +1625,6 @@ static int ext4_dx_add_entry(handle_t *handle, struct dentry *dentry, ...@@ -1644,7 +1625,6 @@ static int ext4_dx_add_entry(handle_t *handle, struct dentry *dentry,
dx_release(frames); dx_release(frames);
return err; return err;
} }
#endif
/* /*
* ext4_delete_entry deletes a directory entry by merging it with the * ext4_delete_entry deletes a directory entry by merging it with the
......
...@@ -36,10 +36,6 @@ ...@@ -36,10 +36,6 @@
/*max window size: 1024(direct blocks) + 3([t,d]indirect blocks) */ /*max window size: 1024(direct blocks) + 3([t,d]indirect blocks) */
#define EXT4_MAX_RESERVE_BLOCKS 1027 #define EXT4_MAX_RESERVE_BLOCKS 1027
#define EXT4_RESERVE_WINDOW_NOT_ALLOCATED 0 #define EXT4_RESERVE_WINDOW_NOT_ALLOCATED 0
/*
* Always enable hashed directories
*/
#define CONFIG_EXT4_INDEX
/* /*
* Debug code * Debug code
...@@ -766,17 +762,11 @@ struct ext4_dir_entry_2 { ...@@ -766,17 +762,11 @@ struct ext4_dir_entry_2 {
* (c) Daniel Phillips, 2001 * (c) Daniel Phillips, 2001
*/ */
#ifdef CONFIG_EXT4_INDEX #define is_dx(dir) (EXT4_HAS_COMPAT_FEATURE(dir->i_sb, \
#define is_dx(dir) (EXT4_HAS_COMPAT_FEATURE(dir->i_sb, \ EXT4_FEATURE_COMPAT_DIR_INDEX) && \
EXT4_FEATURE_COMPAT_DIR_INDEX) && \
(EXT4_I(dir)->i_flags & EXT4_INDEX_FL)) (EXT4_I(dir)->i_flags & EXT4_INDEX_FL))
#define EXT4_DIR_LINK_MAX(dir) (!is_dx(dir) && (dir)->i_nlink >= EXT4_LINK_MAX) #define EXT4_DIR_LINK_MAX(dir) (!is_dx(dir) && (dir)->i_nlink >= EXT4_LINK_MAX)
#define EXT4_DIR_LINK_EMPTY(dir) ((dir)->i_nlink == 2 || (dir)->i_nlink == 1) #define EXT4_DIR_LINK_EMPTY(dir) ((dir)->i_nlink == 2 || (dir)->i_nlink == 1)
#else
#define is_dx(dir) 0
#define EXT4_DIR_LINK_MAX(dir) ((dir)->i_nlink >= EXT4_LINK_MAX)
#define EXT4_DIR_LINK_EMPTY(dir) ((dir)->i_nlink == 2)
#endif
/* Legal values for the dx_root hash_version field: */ /* Legal values for the dx_root hash_version field: */
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册