--- grub2-1.96+20090317.orig/fs/ext2.c 2009-02-08 01:28:09.000000000 +0100 +++ grub2-1.96+20090317/fs/ext2.c 2009-03-18 17:29:03.000000000 +0100 @@ -385,7 +385,7 @@ grub_ext2_read_block (grub_fshelp_node_t unsigned int blksz = EXT2_BLOCK_SIZE (data); int log2_blksz = LOG2_EXT2_BLOCK_SIZE (data); - if (inode->flags & EXT4_EXTENTS_FLAG) + if (grub_le_to_cpu32(inode->flags) & EXT4_EXTENTS_FLAG) { char buf[EXT2_BLOCK_SIZE(data)]; struct grub_ext4_extent_header *leaf; --- grub2-1.96+20090317.orig/ChangeLog 2009-03-14 16:18:59.000000000 +0100 +++ grub2-1.96+20090317/ChangeLog 2009-03-18 18:39:26.000000000 +0100 @@ -0,0 +1,5 @@ +2009-03-18 Michel Dänzer + + * fs/ext2.c (grub_ext2_read_block): Take endianness into account when + checking inode flags for EXT4_EXTENTS_FLAG. +