Line
Link Here
|
0 |
-- |
0 |
++ b/fs/ext3/dir.c |
1 |
-- a/fs/ext3/dir.c |
|
|
Lines 154-159
static int ext3_readdir(struct file * fi
Link Here
|
154 |
ext3_error (sb, "ext3_readdir", |
154 |
ext3_error (sb, "ext3_readdir", |
155 |
"directory #%lu contains a hole at offset %lu", |
155 |
"directory #%lu contains a hole at offset %lu", |
156 |
inode->i_ino, (unsigned long)filp->f_pos); |
156 |
inode->i_ino, (unsigned long)filp->f_pos); |
|
|
157 |
/* corrupt size? Maybe no more blocks to read */ |
158 |
if (filp->f_pos > inode->i_blocks << 9) |
159 |
break; |
157 |
filp->f_pos += sb->s_blocksize - offset; |
160 |
filp->f_pos += sb->s_blocksize - offset; |
158 |
continue; |
161 |
continue; |
159 |
} |
162 |
} |
160 |
-- a/fs/ext3/namei.c |
163 |
++ b/fs/ext3/namei.c |
Lines 552-557
static int htree_dirblock_to_tree(struct
Link Here
|
552 |
dir->i_sb->s_blocksize - |
552 |
dir->i_sb->s_blocksize - |
553 |
EXT3_DIR_REC_LEN(0)); |
553 |
EXT3_DIR_REC_LEN(0)); |
554 |
for (; de < top; de = ext3_next_entry(de)) { |
554 |
for (; de < top; de = ext3_next_entry(de)) { |
|
|
555 |
if (!ext3_check_dir_entry("htree_dirblock_to_tree", dir, de, bh, |
556 |
(block<<EXT3_BLOCK_SIZE_BITS(dir->i_sb)) |
557 |
+((char *)de - bh->b_data))) { |
558 |
/* On error, skip the f_pos to the next block. */ |
559 |
dir_file->f_pos = (dir_file->f_pos | |
560 |
(dir->i_sb->s_blocksize - 1)) + 1; |
561 |
brelse (bh); |
562 |
return count; |
563 |
} |
555 |
ext3fs_dirhash(de->name, de->name_len, hinfo); |
564 |
ext3fs_dirhash(de->name, de->name_len, hinfo); |
556 |
if ((hinfo->hash < start_hash) || |
565 |
if ((hinfo->hash < start_hash) || |
557 |
((hinfo->hash == start_hash) && |
566 |
((hinfo->hash == start_hash) && |