1 /* vi: set sw=4 ts=4: */
3 * alloc_sb.c --- Allocate the superblock and block group descriptors for a
4 * newly initialized filesystem. Used by mke2fs when initializing a filesystem
6 * Copyright (C) 1994, 1995, 1996, 2003 Theodore Ts'o.
9 * This file may be redistributed under the terms of the GNU Public
25 #include <sys/types.h>
31 int ext2fs_reserve_super_and_bgd(ext2_filsys fs
,
33 ext2fs_block_bitmap bmap
)
35 blk_t super_blk
, old_desc_blk
, new_desc_blk
;
36 int j
, old_desc_blocks
, num_blocks
;
38 num_blocks
= ext2fs_super_and_bgd_loc(fs
, group
, &super_blk
,
39 &old_desc_blk
, &new_desc_blk
, 0);
41 if (fs
->super
->s_feature_incompat
& EXT2_FEATURE_INCOMPAT_META_BG
)
42 old_desc_blocks
= fs
->super
->s_first_meta_bg
;
45 fs
->desc_blocks
+ fs
->super
->s_reserved_gdt_blocks
;
47 if (super_blk
|| (group
== 0))
48 ext2fs_mark_block_bitmap(bmap
, super_blk
);
51 for (j
=0; j
< old_desc_blocks
; j
++)
52 ext2fs_mark_block_bitmap(bmap
, old_desc_blk
+ j
);
55 ext2fs_mark_block_bitmap(bmap
, new_desc_blk
);