diff options
author | Linus Torvalds <torvalds@linux-foundation.org> | 2009-01-08 20:14:59 -0500 |
---|---|---|
committer | Linus Torvalds <torvalds@linux-foundation.org> | 2009-01-08 20:14:59 -0500 |
commit | 2150edc6c5cf00f7adb54538b9ea2a3e9cedca3f (patch) | |
tree | f72a0d85e66f500b4cead348a231e3d3b9f357bc /fs/ext3/namei.c | |
parent | cd764695b67386a81964f68e9c66efd9f13f4d29 (diff) | |
parent | 4b905671d2ea09fd48fed72c581df17e40823f39 (diff) |
Merge branch 'for_linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tytso/ext4
* 'for_linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tytso/ext4: (57 commits)
jbd2: Fix oops in jbd2_journal_init_inode() on corrupted fs
ext4: Remove "extents" mount option
block: Add Kconfig help which notes that ext4 needs CONFIG_LBD
ext4: Make printk's consistently prefixed with "EXT4-fs: "
ext4: Add sanity checks for the superblock before mounting the filesystem
ext4: Add mount option to set kjournald's I/O priority
jbd2: Submit writes to the journal using WRITE_SYNC
jbd2: Add pid and journal device name to the "kjournald2 starting" message
ext4: Add markers for better debuggability
ext4: Remove code to create the journal inode
ext4: provide function to release metadata pages under memory pressure
ext3: provide function to release metadata pages under memory pressure
add releasepage hooks to block devices which can be used by file systems
ext4: Fix s_dirty_blocks_counter if block allocation failed with nodelalloc
ext4: Init the complete page while building buddy cache
ext4: Don't allow new groups to be added during block allocation
ext4: mark the blocks/inode bitmap beyond end of group as used
ext4: Use new buffer_head flag to check uninit group bitmaps initialization
ext4: Fix the race between read_inode_bitmap() and ext4_new_inode()
ext4: code cleanup
...
Diffstat (limited to 'fs/ext3/namei.c')
-rw-r--r-- | fs/ext3/namei.c | 11 |
1 files changed, 9 insertions, 2 deletions
diff --git a/fs/ext3/namei.c b/fs/ext3/namei.c index 8d6f965e502c..69a3d19ca9fd 100644 --- a/fs/ext3/namei.c +++ b/fs/ext3/namei.c | |||
@@ -364,6 +364,8 @@ dx_probe(struct qstr *entry, struct inode *dir, | |||
364 | goto fail; | 364 | goto fail; |
365 | } | 365 | } |
366 | hinfo->hash_version = root->info.hash_version; | 366 | hinfo->hash_version = root->info.hash_version; |
367 | if (hinfo->hash_version <= DX_HASH_TEA) | ||
368 | hinfo->hash_version += EXT3_SB(dir->i_sb)->s_hash_unsigned; | ||
367 | hinfo->seed = EXT3_SB(dir->i_sb)->s_hash_seed; | 369 | hinfo->seed = EXT3_SB(dir->i_sb)->s_hash_seed; |
368 | if (entry) | 370 | if (entry) |
369 | ext3fs_dirhash(entry->name, entry->len, hinfo); | 371 | ext3fs_dirhash(entry->name, entry->len, hinfo); |
@@ -632,6 +634,9 @@ int ext3_htree_fill_tree(struct file *dir_file, __u32 start_hash, | |||
632 | dir = dir_file->f_path.dentry->d_inode; | 634 | dir = dir_file->f_path.dentry->d_inode; |
633 | if (!(EXT3_I(dir)->i_flags & EXT3_INDEX_FL)) { | 635 | if (!(EXT3_I(dir)->i_flags & EXT3_INDEX_FL)) { |
634 | hinfo.hash_version = EXT3_SB(dir->i_sb)->s_def_hash_version; | 636 | hinfo.hash_version = EXT3_SB(dir->i_sb)->s_def_hash_version; |
637 | if (hinfo.hash_version <= DX_HASH_TEA) | ||
638 | hinfo.hash_version += | ||
639 | EXT3_SB(dir->i_sb)->s_hash_unsigned; | ||
635 | hinfo.seed = EXT3_SB(dir->i_sb)->s_hash_seed; | 640 | hinfo.seed = EXT3_SB(dir->i_sb)->s_hash_seed; |
636 | count = htree_dirblock_to_tree(dir_file, dir, 0, &hinfo, | 641 | count = htree_dirblock_to_tree(dir_file, dir, 0, &hinfo, |
637 | start_hash, start_minor_hash); | 642 | start_hash, start_minor_hash); |
@@ -1152,9 +1157,9 @@ static struct ext3_dir_entry_2 *do_split(handle_t *handle, struct inode *dir, | |||
1152 | u32 hash2; | 1157 | u32 hash2; |
1153 | struct dx_map_entry *map; | 1158 | struct dx_map_entry *map; |
1154 | char *data1 = (*bh)->b_data, *data2; | 1159 | char *data1 = (*bh)->b_data, *data2; |
1155 | unsigned split, move, size, i; | 1160 | unsigned split, move, size; |
1156 | struct ext3_dir_entry_2 *de = NULL, *de2; | 1161 | struct ext3_dir_entry_2 *de = NULL, *de2; |
1157 | int err = 0; | 1162 | int err = 0, i; |
1158 | 1163 | ||
1159 | bh2 = ext3_append (handle, dir, &newblock, &err); | 1164 | bh2 = ext3_append (handle, dir, &newblock, &err); |
1160 | if (!(bh2)) { | 1165 | if (!(bh2)) { |
@@ -1394,6 +1399,8 @@ static int make_indexed_dir(handle_t *handle, struct dentry *dentry, | |||
1394 | 1399 | ||
1395 | /* Initialize as for dx_probe */ | 1400 | /* Initialize as for dx_probe */ |
1396 | hinfo.hash_version = root->info.hash_version; | 1401 | hinfo.hash_version = root->info.hash_version; |
1402 | if (hinfo.hash_version <= DX_HASH_TEA) | ||
1403 | hinfo.hash_version += EXT3_SB(dir->i_sb)->s_hash_unsigned; | ||
1397 | hinfo.seed = EXT3_SB(dir->i_sb)->s_hash_seed; | 1404 | hinfo.seed = EXT3_SB(dir->i_sb)->s_hash_seed; |
1398 | ext3fs_dirhash(name, namelen, &hinfo); | 1405 | ext3fs_dirhash(name, namelen, &hinfo); |
1399 | frame = frames; | 1406 | frame = frames; |