Whoops... thanks for pointing this out, Stephen...
Fix some endian errors in the 16T ext[23] patches I sent in the past couple weeks.
Signed-off-by: Eric Sandeen <[email protected]>
Index: linux-2.6.17/fs/ext2/super.c
===================================================================
--- linux-2.6.17.orig/fs/ext2/super.c
+++ linux-2.6.17/fs/ext2/super.c
@@ -514,7 +514,7 @@ static int ext2_check_descriptors (struc
for (i = 0; i < sbi->s_groups_count; i++)
{
if (i == sbi->s_groups_count - 1)
- last_block = sbi->s_es->s_blocks_count - 1;
+ last_block = le32_to_cpu(sbi->s_es->s_blocks_count) - 1;
else
last_block = first_block +
(EXT2_BLOCKS_PER_GROUP(sb) - 1);
Index: linux-2.6.17/fs/ext3/resize.c
===================================================================
--- linux-2.6.17.orig/fs/ext3/resize.c
+++ linux-2.6.17/fs/ext3/resize.c
@@ -730,12 +730,14 @@ int ext3_group_add(struct super_block *s
return -EPERM;
}
- if (es->s_blocks_count + input->blocks_count < es->s_blocks_count) {
+ if (le32_to_cpu(es->s_blocks_count) + input->blocks_count <
+ le32_to_cpu(es->s_blocks_count)) {
ext3_warning(sb, __FUNCTION__, "blocks_count overflow\n");
return -EINVAL;
}
- if (es->s_inodes_count+EXT3_INODES_PER_GROUP(sb) < es->s_inodes_count) {
+ if (le32_to_cpu(es->s_inodes_count) + EXT3_INODES_PER_GROUP(sb) <
+ le32_to_cpu(es->s_inodes_count)) {
ext3_warning(sb, __FUNCTION__, "inodes_count overflow\n");
return -EINVAL;
}
Index: linux-2.6.17/fs/ext3/super.c
===================================================================
--- linux-2.6.17.orig/fs/ext3/super.c
+++ linux-2.6.17/fs/ext3/super.c
@@ -1143,7 +1143,7 @@ static int ext3_check_descriptors (struc
for (i = 0; i < sbi->s_groups_count; i++)
{
if (i == sbi->s_groups_count - 1)
- last_block = sbi->s_es->s_blocks_count - 1;
+ last_block = le32_to_cpu(sbi->s_es->s_blocks_count) - 1;
else
last_block = first_block +
(EXT3_BLOCKS_PER_GROUP(sb) - 1);