diff options
-rw-r--r-- | fs/ext3/namei.c | 17 |
1 files changed, 9 insertions, 8 deletions
diff --git a/fs/ext3/namei.c b/fs/ext3/namei.c index e2fc63cbba8b..bd87a6077536 100644 --- a/fs/ext3/namei.c +++ b/fs/ext3/namei.c | |||
@@ -161,12 +161,12 @@ static struct dx_frame *dx_probe(struct qstr *entry, | |||
161 | struct dx_frame *frame, | 161 | struct dx_frame *frame, |
162 | int *err); | 162 | int *err); |
163 | static void dx_release (struct dx_frame *frames); | 163 | static void dx_release (struct dx_frame *frames); |
164 | static int dx_make_map (struct ext3_dir_entry_2 *de, int size, | 164 | static int dx_make_map(struct ext3_dir_entry_2 *de, unsigned blocksize, |
165 | struct dx_hash_info *hinfo, struct dx_map_entry map[]); | 165 | struct dx_hash_info *hinfo, struct dx_map_entry map[]); |
166 | static void dx_sort_map(struct dx_map_entry *map, unsigned count); | 166 | static void dx_sort_map(struct dx_map_entry *map, unsigned count); |
167 | static struct ext3_dir_entry_2 *dx_move_dirents (char *from, char *to, | 167 | static struct ext3_dir_entry_2 *dx_move_dirents (char *from, char *to, |
168 | struct dx_map_entry *offsets, int count); | 168 | struct dx_map_entry *offsets, int count); |
169 | static struct ext3_dir_entry_2* dx_pack_dirents (char *base, int size); | 169 | static struct ext3_dir_entry_2 *dx_pack_dirents(char *base, unsigned blocksize); |
170 | static void dx_insert_block (struct dx_frame *frame, u32 hash, u32 block); | 170 | static void dx_insert_block (struct dx_frame *frame, u32 hash, u32 block); |
171 | static int ext3_htree_next_block(struct inode *dir, __u32 hash, | 171 | static int ext3_htree_next_block(struct inode *dir, __u32 hash, |
172 | struct dx_frame *frame, | 172 | struct dx_frame *frame, |
@@ -708,14 +708,14 @@ errout: | |||
708 | * Create map of hash values, offsets, and sizes, stored at end of block. | 708 | * Create map of hash values, offsets, and sizes, stored at end of block. |
709 | * Returns number of entries mapped. | 709 | * Returns number of entries mapped. |
710 | */ | 710 | */ |
711 | static int dx_make_map (struct ext3_dir_entry_2 *de, int size, | 711 | static int dx_make_map(struct ext3_dir_entry_2 *de, unsigned blocksize, |
712 | struct dx_hash_info *hinfo, struct dx_map_entry *map_tail) | 712 | struct dx_hash_info *hinfo, struct dx_map_entry *map_tail) |
713 | { | 713 | { |
714 | int count = 0; | 714 | int count = 0; |
715 | char *base = (char *) de; | 715 | char *base = (char *) de; |
716 | struct dx_hash_info h = *hinfo; | 716 | struct dx_hash_info h = *hinfo; |
717 | 717 | ||
718 | while ((char *) de < base + size) | 718 | while ((char *) de < base + blocksize) |
719 | { | 719 | { |
720 | if (de->name_len && de->inode) { | 720 | if (de->name_len && de->inode) { |
721 | ext3fs_dirhash(de->name, de->name_len, &h); | 721 | ext3fs_dirhash(de->name, de->name_len, &h); |
@@ -1120,13 +1120,14 @@ dx_move_dirents(char *from, char *to, struct dx_map_entry *map, int count) | |||
1120 | * Compact each dir entry in the range to the minimal rec_len. | 1120 | * Compact each dir entry in the range to the minimal rec_len. |
1121 | * Returns pointer to last entry in range. | 1121 | * Returns pointer to last entry in range. |
1122 | */ | 1122 | */ |
1123 | static struct ext3_dir_entry_2* dx_pack_dirents(char *base, int size) | 1123 | static struct ext3_dir_entry_2 *dx_pack_dirents(char *base, unsigned blocksize) |
1124 | { | 1124 | { |
1125 | struct ext3_dir_entry_2 *next, *to, *prev, *de = (struct ext3_dir_entry_2 *) base; | 1125 | struct ext3_dir_entry_2 *next, *to, *prev; |
1126 | struct ext3_dir_entry_2 *de = (struct ext3_dir_entry_2 *)base; | ||
1126 | unsigned rec_len = 0; | 1127 | unsigned rec_len = 0; |
1127 | 1128 | ||
1128 | prev = to = de; | 1129 | prev = to = de; |
1129 | while ((char*)de < base + size) { | 1130 | while ((char *)de < base + blocksize) { |
1130 | next = ext3_next_entry(de); | 1131 | next = ext3_next_entry(de); |
1131 | if (de->inode && de->name_len) { | 1132 | if (de->inode && de->name_len) { |
1132 | rec_len = EXT3_DIR_REC_LEN(de->name_len); | 1133 | rec_len = EXT3_DIR_REC_LEN(de->name_len); |