--- linux-2.6.29-rc8/fs/ext4/extents.c~ 2009-03-16 19:37:22.000000000 +0100 +++ linux-2.6.29-rc8/fs/ext4/extents.c 2009-03-16 19:50:33.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; @@ -646,17 +645,16 @@ goto err; } /* validate the extent entries */ - need_to_validate = 1; + if (ext4_ext_check(inode, eh, i)) + goto err; } + eh = ext_block_hdr(bh); ppos++; BUG_ON(ppos > depth); path[ppos].p_bh = bh; path[ppos].p_hdr = eh; i--; - - if (need_to_validate && ext4_ext_check(inode, eh, i)) - goto err; } path[ppos].p_depth = i;