Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 01f49d0b authored by Theodore Ts'o's avatar Theodore Ts'o
Browse files

ext4: use ext4_lblk_t instead of sector_t for logical blocks



This fixes a number of places where we used sector_t instead of
ext4_lblk_t for logical blocks, which for ext4 are still 32-bit data
types.  No point wasting space in the ext4_inode_info structure, and
requiring 64-bit arithmetic on 32-bit systems, when it isn't
necessary.

Signed-off-by: default avatar"Theodore Ts'o" <tytso@mit.edu>
parent f2321097
Loading
Loading
Loading
Loading
+1 −1
Original line number Original line Diff line number Diff line
@@ -828,7 +828,7 @@ struct ext4_inode_info {
	unsigned int i_reserved_data_blocks;
	unsigned int i_reserved_data_blocks;
	unsigned int i_reserved_meta_blocks;
	unsigned int i_reserved_meta_blocks;
	unsigned int i_allocated_meta_blocks;
	unsigned int i_allocated_meta_blocks;
	sector_t i_da_metadata_calc_last_lblock;
	ext4_lblk_t i_da_metadata_calc_last_lblock;
	int i_da_metadata_calc_len;
	int i_da_metadata_calc_len;


	/* on-disk additional length */
	/* on-disk additional length */
+1 −1
Original line number Original line Diff line number Diff line
@@ -278,7 +278,7 @@ static inline void ext4_idx_store_pblock(struct ext4_extent_idx *ix,
}
}


extern int ext4_ext_calc_metadata_amount(struct inode *inode,
extern int ext4_ext_calc_metadata_amount(struct inode *inode,
					 sector_t lblocks);
					 ext4_lblk_t lblocks);
extern int ext4_extent_tree_init(handle_t *, struct inode *);
extern int ext4_extent_tree_init(handle_t *, struct inode *);
extern int ext4_ext_calc_credits_for_single_extent(struct inode *inode,
extern int ext4_ext_calc_credits_for_single_extent(struct inode *inode,
						   int num,
						   int num,
+1 −1
Original line number Original line Diff line number Diff line
@@ -266,7 +266,7 @@ static inline int ext4_ext_space_root_idx(struct inode *inode, int check)
 * to allocate @blocks
 * to allocate @blocks
 * Worse case is one block per extent
 * Worse case is one block per extent
 */
 */
int ext4_ext_calc_metadata_amount(struct inode *inode, sector_t lblock)
int ext4_ext_calc_metadata_amount(struct inode *inode, ext4_lblk_t lblock)
{
{
	struct ext4_inode_info *ei = EXT4_I(inode);
	struct ext4_inode_info *ei = EXT4_I(inode);
	int idxs, num = 0;
	int idxs, num = 0;
+2 −2
Original line number Original line Diff line number Diff line
@@ -1091,7 +1091,7 @@ static int ext4_indirect_calc_metadata_amount(struct inode *inode,
 * Calculate the number of metadata blocks need to reserve
 * Calculate the number of metadata blocks need to reserve
 * to allocate a block located at @lblock
 * to allocate a block located at @lblock
 */
 */
static int ext4_calc_metadata_amount(struct inode *inode, sector_t lblock)
static int ext4_calc_metadata_amount(struct inode *inode, ext4_lblk_t lblock)
{
{
	if (ext4_test_inode_flag(inode, EXT4_INODE_EXTENTS))
	if (ext4_test_inode_flag(inode, EXT4_INODE_EXTENTS))
		return ext4_ext_calc_metadata_amount(inode, lblock);
		return ext4_ext_calc_metadata_amount(inode, lblock);
@@ -1888,7 +1888,7 @@ static int ext4_journalled_write_end(struct file *file,
/*
/*
 * Reserve a single block located at lblock
 * Reserve a single block located at lblock
 */
 */
static int ext4_da_reserve_space(struct inode *inode, sector_t lblock)
static int ext4_da_reserve_space(struct inode *inode, ext4_lblk_t lblock)
{
{
	int retries = 0;
	int retries = 0;
	struct ext4_sb_info *sbi = EXT4_SB(inode->i_sb);
	struct ext4_sb_info *sbi = EXT4_SB(inode->i_sb);