ext4: Make ext4_ext_find_extent fills ext_path completely From: Shen Feng When pos=0 or depth, the fields of ext4_ext_path is are not completely filled. This patch also removes some unnecessary code. Signed-off-by: Shen Feng Signed-off-by: Mingming Cao Signed-off-by: "Theodore Ts'o" --- fs/ext4/extents.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) Index: linux-2.6.26-rc9/fs/ext4/extents.c =================================================================== --- linux-2.6.26-rc9.orig/fs/ext4/extents.c 2008-07-11 16:05:03.000000000 -0700 +++ linux-2.6.26-rc9/fs/ext4/extents.c 2008-07-11 16:05:03.000000000 -0700 @@ -524,6 +524,7 @@ ext4_ext_find_extent(struct inode *inode alloc = 1; } path[0].p_hdr = eh; + path[0].p_bh = NULL; i = depth; /* walk through the tree */ @@ -552,12 +553,14 @@ ext4_ext_find_extent(struct inode *inode } path[ppos].p_depth = i; - path[ppos].p_hdr = eh; path[ppos].p_ext = NULL; path[ppos].p_idx = NULL; /* find extent */ ext4_ext_binsearch(inode, path + ppos, block); + /* if not an empty leaf */ + if (path[ppos].p_ext) + path[ppos].p_block = ext_pblock(path[ppos].p_ext); ext4_ext_show_path(inode, path);