===================================================================
--- /dev/null 1970-01-01 00:00:00.000000000 +0000
+++ linux-2.6.18.8/fs/ext3/extents.c 2007-07-17 11:08:59.000000000 +0200
-@@ -0,0 +1,2272 @@
+@@ -0,0 +1,2276 @@
+/*
+ * Copyright (c) 2003-2006, Cluster File Systems, Inc, info@clusterfs.com
+ * Written by Alex Tomas <alex@clusterfs.com>
+ return max;
+}
+
-+static int __ext3_ext_check_header(const char *function, struct inode *inode,
++static int __ext3_ext_check_header(const char *function, int line, struct inode *inode,
+ struct ext3_extent_header *eh,
+ int depth)
+{
+ error_msg = "invalid eh_entries";
+ goto corrupted;
+ }
++ if (unlikely((eh->eh_entries == 0) && (eh->eh_depth != 0))) {
++ error_msg = "invalid index, eh_entries=0 && eh_depth != 0";
++ goto corrupted;
++ }
+ return 0;
+
+corrupted:
+ ext3_error(inode->i_sb, function,
-+ "bad header in inode #%lu: %s - magic %x, "
-+ "entries %u, max %u(%u), depth %u(%u)",
++ ":%d: bad header in inode #%lu: %s - magic %x, "
++ "entries %u, max %u(%u), depth %u(%u)", line,
+ inode->i_ino, error_msg, le16_to_cpu(eh->eh_magic),
+ le16_to_cpu(eh->eh_entries), le16_to_cpu(eh->eh_max),
+ max, le16_to_cpu(eh->eh_depth), depth);
+}
+
+#define ext3_ext_check_header(inode,eh,depth) \
-+ __ext3_ext_check_header(__FUNCTION__,inode,eh,depth)
++ __ext3_ext_check_header(__FUNCTION__,__LINE__,inode,eh,depth)
+
+#ifdef EXT_DEBUG
+static void ext3_ext_show_path(struct inode *inode, struct ext3_ext_path *path)