Based on 2.6.29-rc7 with Aneesh Kumar's patches: ext4: Validate extent details only when read from the disk ext4: Add checks to validate extent entries Sets need_to_validate=0 inside instead of outside the loop. Signed-off-by: Thiemo Nagel <thiemo.nagel@xxxxxxxxx>
--- linux-2.6.29-rc7/fs/ext4/extents.c~ 2009-03-12 14:51:21.000000000 +0100 +++ linux-2.6.29-rc7/fs/ext4/extents.c 2009-03-12 16:23:41.000000000 +0100 @@ -607,7 +607,6 @@ ext4_ext_find_extent(struct inode *inode, ext4_lblk_t block, struct ext4_ext_path *path) { - int need_to_validate = 0; struct ext4_extent_header *eh; struct buffer_head *bh; short int depth, i, ppos = 0, alloc = 0; @@ -629,6 +628,7 @@ i = depth; /* walk through the tree */ while (i) { + int need_to_validate = 0; ext_debug("depth %d: num %d, max %d\n", ppos, le16_to_cpu(eh->eh_entries), le16_to_cpu(eh->eh_max));