===================================================================
--- linux-stage.orig/fs/ext3/extents.c 2005-02-25 15:33:48.890198160 +0200
+++ linux-stage/fs/ext3/extents.c 2005-02-25 15:33:48.917194056 +0200
-@@ -0,0 +1,2359 @@
+@@ -0,0 +1,2360 @@
+/*
+ * Copyright(c) 2003, 2004, 2005, Cluster File Systems, Inc, info@clusterfs.com
+ * Written by Alex Tomas <alex@clusterfs.com>
+static inline void ext3_ext_tree_changed(struct ext3_extents_tree *tree)
+{
+ struct ext3_extent_header *neh = EXT_ROOT_HDR(tree);
-+ neh->eh_generation = ((EXT_FLAGS(neh) & ~EXT_FLAGS_CLR_UNKNOWN) << 24) |
-+ (EXT_HDR_GEN(neh) + 1);
++ neh->eh_generation = ((EXT_FLAGS(neh) & ~EXT_FLAGS_CLR_UNKNOWN) <<
++ EXT_HDR_GEN_BITS) |
++ ((EXT_HDR_GEN(neh) + 1) & EXT_HDR_GEN_MASK);
+}
+
+static inline int ext3_ext_space_block(struct ext3_extents_tree *tree)
+ __u32 ee_block; /* first logical block extent covers */
+ __u16 ee_len; /* number of blocks covered by extent */
+ __u16 ee_start_hi; /* high 16 bits of physical block */
-+ __u32 ee_start; /* low 32 bigs of physical block */
++ __u32 ee_start; /* low 32 bits of physical block */
+};
+
+/*
+ (EXT_FIRST_EXTENT((__hdr__)) + (__hdr__)->eh_max - 1)
+#define EXT_MAX_INDEX(__hdr__) \
+ (EXT_FIRST_INDEX((__hdr__)) + (__hdr__)->eh_max - 1)
-+#define EXT_HDR_GEN(__hdr__) ((__hdr__)->eh_generation & 0x00ffffff)
-+#define EXT_FLAGS(__hdr__) ((__hdr__)->eh_generation >> 24)
++#define EXT_HDR_GEN_BITS 24
++#define EXT_HDR_GEN_MASK ((1 << EXT_HDR_GEN_BITS) - 1)
++#define EXT_HDR_GEN(__hdr__) ((__hdr__)->eh_generation & EXT_HDR_GEN_MASK)
++#define EXT_FLAGS(__hdr__) ((__hdr__)->eh_generation >> EXT_HDR_GEN_BITS)
+#define EXT_FLAGS_CLR_UNKNOWN 0x7 /* Flags cleared on modification */
+
+#define EXT_BLOCK_HDR(__bh__) ((struct ext3_extent_header *)(__bh__)->b_data)
+ if (tree->cex)
+ tree->cex->ec_type = EXT3_EXT_CACHE_NO;
+}
-+
-+
+#endif /* _LINUX_EXT3_EXTENTS */
Index: linux-stage/include/linux/ext3_fs_i.h
===================================================================