info->info_length)) {
ext4_warning(dir->i_sb, __func__,
"dx entry: limit != root limit");
-@@ -617,7 +627,7 @@ static int htree_dirblock_to_tree(struct
+@@ -485,14 +495,17 @@ dx_probe(const struct qstr *d_name, stru
+ if (!indirect--) return frame;
+ if (!(bh = ext4_bread (NULL,dir, dx_get_block(at), 0, err)))
+ goto fail2;
+- at = entries = ((struct dx_node *) bh->b_data)->entries;
++ entries = ((struct dx_node *) bh->b_data)->entries;
+ if (dx_get_limit(entries) != dx_node_limit (dir)) {
+ ext4_warning(dir->i_sb, __func__,
+- "dx entry: limit != node limit");
++ "block %u(%lu): limit %u != node limit %u",
++ dx_get_block(at), (long)bh->b_blocknr,
++ dx_get_limit(entries), dx_node_limit(dir));
+ brelse(bh);
+ *err = ERR_BAD_DX_DIR;
+ goto fail2;
+ }
++ at = entries;
+ frame++;
+ frame->bh = NULL;
+ }
+@@ -618,7 +631,7 @@ static int htree_dirblock_to_tree(struct
de = (struct ext4_dir_entry_2 *) bh->b_data;
top = (struct ext4_dir_entry_2 *) ((char *) de +
dir->i_sb->s_blocksize -