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

Commit 72b64b59 authored by Andrew Morton's avatar Andrew Morton Committed by Linus Torvalds
Browse files

[PATCH] ext4 uninline ext4_get_group_no_and_offset()



Way too big to inline.

Cc: <linux-ext4@vger.kernel.org>
Signed-off-by: default avatarAndrew Morton <akpm@osdl.org>
Signed-off-by: default avatarLinus Torvalds <torvalds@osdl.org>
parent 8fadc143
Loading
Loading
Loading
Loading
+18 −0
Original line number Diff line number Diff line
@@ -24,6 +24,24 @@
 * balloc.c contains the blocks allocation and deallocation routines
 */

/*
 * Calculate the block group number and offset, given a block number
 */
void ext4_get_group_no_and_offset(struct super_block *sb, ext4_fsblk_t blocknr,
		unsigned long *blockgrpp, ext4_grpblk_t *offsetp)
{
        struct ext4_super_block *es = EXT4_SB(sb)->s_es;
	ext4_grpblk_t offset;

        blocknr = blocknr - le32_to_cpu(es->s_first_data_block);
        offset = sector_div(blocknr, EXT4_BLOCKS_PER_GROUP(sb));
	if (offsetp)
		*offsetp = offset;
	if (blockgrpp)
	        *blockgrpp = blocknr;

}

/*
 * The free blocks are managed by bitmaps.  A file system contains several
 * blocks groups.  Each group contains 1 bitmap block for blocks, 1 bitmap
+2 −20
Original line number Diff line number Diff line
@@ -769,26 +769,8 @@ ext4_group_first_block_no(struct super_block *sb, unsigned long group_no)
 */
#define ERR_BAD_DX_DIR	-75000

/*
 * This function calculate the block group number and offset,
 * given a block number
 */

static inline void ext4_get_group_no_and_offset(struct super_block * sb,
                                ext4_fsblk_t blocknr, unsigned long* blockgrpp,
                                ext4_grpblk_t *offsetp)
{
        struct ext4_super_block *es = EXT4_SB(sb)->s_es;
	ext4_grpblk_t offset;

        blocknr = blocknr - le32_to_cpu(es->s_first_data_block);
        offset = sector_div(blocknr, EXT4_BLOCKS_PER_GROUP(sb));
	if (offsetp)
		*offsetp = offset;
	if (blockgrpp)
	        *blockgrpp = blocknr;

}
void ext4_get_group_no_and_offset(struct super_block *sb, ext4_fsblk_t blocknr,
			unsigned long *blockgrpp, ext4_grpblk_t *offsetp);

/*
 * Function prototypes