mirror of
https://git.kernel.org/pub/scm/fs/ext2/e2fsprogs.git
synced 2024-12-04 15:33:38 +08:00
b1988056fb
Place the allocation bitmaps and inode table blocks so they are adjacent, even in the last flexbg. Previously, after running "mke2fs -t ext4 DEV 286720", the layout of the last few block groups would look like this: Group 32: (Blocks 262145-270336) [INODE_UNINIT, ITABLE_ZEROED] Block bitmap at 262145 (+0), Inode bitmap at 262161 (+16) Inode table at 262177-262432 (+32) Group 33: (Blocks 270337-278528) [INODE_UNINIT, BLOCK_UNINIT, ITABLE_ZEROED] Block bitmap at 262146 (bg #32 + 1), Inode bitmap at 262162 (bg #32 + 17) Inode table at 262433-262688 (bg #32 + 288) Group 34: (Blocks 278529-286719) [INODE_UNINIT, ITABLE_ZEROED] Block bitmap at 262147 (bg #32 + 2), Inode bitmap at 262163 (bg #32 + 18) Inode table at 262689-262944 (bg #32 + 544) Now, they look like this: Group 32: (Blocks 262145-270336) [INODE_UNINIT, ITABLE_ZEROED] Block bitmap at 262145 (+0), Inode bitmap at 262148 (+3) Inode table at 262151-262406 (+6) Group 33: (Blocks 270337-278528) [INODE_UNINIT, BLOCK_UNINIT, ITABLE_ZEROED] Block bitmap at 262146 (bg #32 + 1), Inode bitmap at 262149 (bg #32 + 4) Inode table at 262407-262662 (bg #32 + 262) Group 34: (Blocks 278529-286719) [INODE_UNINIT, ITABLE_ZEROED] Block bitmap at 262147 (bg #32 + 2), Inode bitmap at 262150 (bg #32 + 5) Inode table at 262663-262918 (bg #32 + 518) This reduces the free space fragmentation in a freshly created file system. It also allows the following mke2fs command to succeed: mke2fs -t ext4 -b 4096 -O ^resize_inode -G $((2**20)) DEV 2130483 (Note that while this allows people to run mke2fs with insanely large flexbg sizes, this is not a recommended practice, as the kernel may refuse to resize such a file system while mounted, since it currently tries to allocate an in-memory data structure based on the size of the flexbg, and so a file system with a very large flexbg size will cause the memory allocation to fail. This will hopefully be fixed in a future kernel release, but if the goal is to force all of the metadata blocks to be at the beginning of the file system, it's better to use the packed_meta_blocks configuration parameter in mke2fs.conf.) Signed-off-by: Theodore Ts'o <tytso@mit.edu> |
||
---|---|---|
.. | ||
expect.1 | ||
script |