diff options
author | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-05-21 04:59:33 +0000 |
---|---|---|
committer | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-05-21 04:59:33 +0000 |
commit | 73193347133e750faf27f88fd3ab31ce43aff062 (patch) | |
tree | e28a6d9512d1787b1fcbe9167188c9d134bf51d9 /lib/ext2fs/alloc_sb.c | |
parent | Adding upstream version 1.47.0. (diff) | |
download | e2fsprogs-upstream.tar.xz e2fsprogs-upstream.zip |
Adding upstream version 1.47.1.upstream/1.47.1upstream
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to '')
-rw-r--r-- | lib/ext2fs/alloc_sb.c | 28 |
1 files changed, 26 insertions, 2 deletions
diff --git a/lib/ext2fs/alloc_sb.c b/lib/ext2fs/alloc_sb.c index 8530b40..e92739e 100644 --- a/lib/ext2fs/alloc_sb.c +++ b/lib/ext2fs/alloc_sb.c @@ -46,8 +46,7 @@ int ext2fs_reserve_super_and_bgd(ext2_filsys fs, ext2fs_block_bitmap bmap) { blk64_t super_blk, old_desc_blk, new_desc_blk; - blk_t used_blks; - int old_desc_blocks, num_blocks; + blk_t used_blks, old_desc_blocks, num_blocks; ext2fs_super_and_bgd_loc2(fs, group, &super_blk, &old_desc_blk, &new_desc_blk, &used_blks); @@ -79,3 +78,28 @@ int ext2fs_reserve_super_and_bgd(ext2_filsys fs, return num_blocks ; } + +/* + * This function reserves the superblock and block group descriptors + * for a given block group and returns the number of blocks used by the + * super block and group descriptors by looking up the block bitmap. + */ +errcode_t ext2fs_reserve_super_and_bgd2(ext2_filsys fs, + dgrp_t group, + ext2fs_block_bitmap bmap, + blk_t *desc_blocks) +{ + blk64_t num_blocks; + errcode_t retval = 0; + + ext2fs_reserve_super_and_bgd(fs, group, bmap); + + retval = ext2fs_count_used_blocks(fs, + ext2fs_group_first_block2(fs, group), + ext2fs_group_last_block2(fs, group), + &num_blocks); + if (!retval) + *desc_blocks = num_blocks; + + return retval; +} |