--- linux-2.6.16-ming/fs/ext3/balloc.c | 13 +++++++------ linux-2.6.16-ming/fs/ext3/inode.c | 3 ++- linux-2.6.16-ming/fs/ext3/resize.c | 3 ++- linux-2.6.16-ming/fs/ext3/super.c | 2 +- 4 files changed, 12 insertions(+), 9 deletions(-) diff -puN fs/ext3/balloc.c~ext3_fsblk_RHS_assignment_convert fs/ext3/balloc.c --- linux-2.6.16/fs/ext3/balloc.c~ext3_fsblk_RHS_assignment_convert 2006-05-19 17:13:09.614384208 -0700 +++ linux-2.6.16-ming/fs/ext3/balloc.c 2006-05-19 17:13:09.630382345 -0700 @@ -169,7 +169,7 @@ goal_in_my_reservation(struct ext3_reser ext3_fsblk_t group_first_block, group_last_block; group_first_block = le32_to_cpu(EXT3_SB(sb)->s_es->s_first_data_block) + - group * EXT3_BLOCKS_PER_GROUP(sb); + group * (ext3_fsblk_t)EXT3_BLOCKS_PER_GROUP(sb); group_last_block = group_first_block + EXT3_BLOCKS_PER_GROUP(sb) - 1; if ((rsv->_rsv_start > group_last_block) || @@ -666,7 +666,7 @@ ext3_try_to_allocate(struct super_block if (my_rsv) { group_first_block = le32_to_cpu(EXT3_SB(sb)->s_es->s_first_data_block) + - group * EXT3_BLOCKS_PER_GROUP(sb); + group * (ext3_fsblk_t)EXT3_BLOCKS_PER_GROUP(sb); if (my_rsv->_rsv_start >= group_first_block) start = my_rsv->_rsv_start - group_first_block; else @@ -901,7 +901,7 @@ static int alloc_new_reservation(struct spinlock_t *rsv_lock = &EXT3_SB(sb)->s_rsv_window_lock; group_first_block = le32_to_cpu(EXT3_SB(sb)->s_es->s_first_data_block) + - group * EXT3_BLOCKS_PER_GROUP(sb); + group * (ext3_fsblk_t) EXT3_BLOCKS_PER_GROUP(sb); group_end_block = group_first_block + EXT3_BLOCKS_PER_GROUP(sb) - 1; if (grp_goal < 0) @@ -1105,7 +1105,7 @@ ext3_try_to_allocate_with_rsv(struct sup * first block is the block number of the first block in this group */ group_first_block = le32_to_cpu(EXT3_SB(sb)->s_es->s_first_data_block) + - group * EXT3_BLOCKS_PER_GROUP(sb); + group * (ext3_fsblk_t)EXT3_BLOCKS_PER_GROUP(sb); /* * Basically we will allocate a new block from inode's reservation @@ -1371,8 +1371,9 @@ allocated: if (fatal) goto out; - ret_block = grp_alloc_blk + group_no * EXT3_BLOCKS_PER_GROUP(sb) - + le32_to_cpu(es->s_first_data_block); + ret_block = grp_alloc_blk + + group_no * (ext3_fsblk_t)EXT3_BLOCKS_PER_GROUP(sb) + + le32_to_cpu(es->s_first_data_block); if (in_range(le32_to_cpu(gdp->bg_block_bitmap), ret_block, num) || in_range(le32_to_cpu(gdp->bg_inode_bitmap), ret_block, num) || diff -puN fs/ext3/inode.c~ext3_fsblk_RHS_assignment_convert fs/ext3/inode.c --- linux-2.6.16/fs/ext3/inode.c~ext3_fsblk_RHS_assignment_convert 2006-05-19 17:13:09.618383742 -0700 +++ linux-2.6.16-ming/fs/ext3/inode.c 2006-05-19 17:13:09.635381762 -0700 @@ -429,7 +429,8 @@ static ext3_fsblk_t ext3_find_near(struc * It is going to be referred to from the inode itself? OK, just put it * into the same cylinder group then. */ - bg_start = (ei->i_block_group * EXT3_BLOCKS_PER_GROUP(inode->i_sb)) + + bg_start = ei->i_block_group * + (ext3_fsblk_t)EXT3_BLOCKS_PER_GROUP(inode->i_sb) + le32_to_cpu(EXT3_SB(inode->i_sb)->s_es->s_first_data_block); colour = (current->pid % 16) * (EXT3_BLOCKS_PER_GROUP(inode->i_sb) / 16); diff -puN fs/ext3/resize.c~ext3_fsblk_RHS_assignment_convert fs/ext3/resize.c --- linux-2.6.16/fs/ext3/resize.c~ext3_fsblk_RHS_assignment_convert 2006-05-19 17:13:09.621383393 -0700 +++ linux-2.6.16-ming/fs/ext3/resize.c 2006-05-19 17:13:09.638381413 -0700 @@ -167,7 +167,8 @@ static int setup_new_group_blocks(struct struct ext3_new_group_data *input) { struct ext3_sb_info *sbi = EXT3_SB(sb); - ext3_fsblk_t start = input->group * sbi->s_blocks_per_group + + ext3_fsblk_t start = input->group * + (ext3_fsblk_t) sbi->s_blocks_per_group + le32_to_cpu(sbi->s_es->s_first_data_block); int reserved_gdb = ext3_bg_has_super(sb, input->group) ? le16_to_cpu(sbi->s_es->s_reserved_gdt_blocks) : 0; diff -puN fs/ext3/super.c~ext3_fsblk_RHS_assignment_convert fs/ext3/super.c --- linux-2.6.16/fs/ext3/super.c~ext3_fsblk_RHS_assignment_convert 2006-05-19 17:13:09.625382927 -0700 +++ linux-2.6.16-ming/fs/ext3/super.c 2006-05-19 17:13:09.642380947 -0700 @@ -1333,7 +1333,7 @@ static ext3_fsblk_t descriptor_loc(struc bg = sbi->s_desc_per_block * nr; if (ext3_bg_has_super(sb, bg)) has_super = 1; - return (first_data_block + has_super + (bg * sbi->s_blocks_per_group)); + return (first_data_block + has_super + (bg * (ext3_fsblk_t)sbi->s_blocks_per_group)); } _