]> git.ipfire.org Git - thirdparty/e2fsprogs.git/commitdiff
Change mke2fs's layout of RAID-optimized filesystems to be more optimal
authorTheodore Ts'o <tytso@mit.edu>
Sat, 13 May 2006 12:46:37 +0000 (08:46 -0400)
committerTheodore Ts'o <tytso@mit.edu>
Sat, 13 May 2006 12:46:37 +0000 (08:46 -0400)
When allocating space for the RAID filesystems with the stride parameter,
place each portion of the group's inode table right up after the superblock
(if present) in order to minimize fragmentation of the freespace.

Signed-off-by: "Theodore Ts'o" <tytso@mit.edu>
lib/ext2fs/ChangeLog
lib/ext2fs/alloc_tables.c
tests/ChangeLog
tests/m_raid_opt/expect.1

index 512ef3f704742c4423e4975f91d531d91f855337..3ce0f4dc77aa04d056ea79d4e80ca3229e5897d9 100644 (file)
@@ -1,3 +1,11 @@
+2006-05-12  Theodore Tso  <tytso@mit.edu>
+
+       * alloc_tables.c (ext2fs_allocate_group_table): When allocating
+               space for the RAID filesystems with the stride parameter,
+               place each portion of the group's inode table right up
+               after the superblock (if present) in order to minimize
+               fragmentation of the freespace.
+
 2006-05-08  Theodore Tso  <tytso@mit.edu>
 
        * rw_bitmaps.c (write_bitmaps, read_bitmaps): Added support for
index 0326321be7d7ccf2b1703b8314997e19760d32a5..dec49bdae2681dba77e211b105f6066cbd6c5b96 100644 (file)
@@ -48,7 +48,11 @@ errcode_t ext2fs_allocate_group_table(ext2_filsys fs, dgrp_t group,
         * Allocate the block and inode bitmaps, if necessary
         */
        if (fs->stride) {
-               start_blk = group_blk + fs->inode_blocks_per_group;
+               retval = ext2fs_get_free_blocks(fs, group_blk, last_blk,
+                                               1, bmap, &start_blk);
+               if (retval)
+                       return retval;
+               start_blk += fs->inode_blocks_per_group;
                start_blk += ((fs->stride * group) %
                              (last_blk - start_blk));
                if (start_blk > last_blk)
index c140f70492141f178ea2ea67bcf6a98b8e6a00cd..5e6854dc3269ce079ab77878c0de19b1ef269467 100644 (file)
@@ -1,3 +1,8 @@
+2006-05-13  Theodore Tso  <tytso@mit.edu>
+
+       * m_raid_opt: Update expect files to match with new mke2fs layout
+               used when the stride raid option is specified.
+
 2006-03-23  Theodore Ts'o  <tytso@mit.edu>
 
        * test_config: Set up MKE2FS_CONFIG to point at the mke2fs.conf
index 6df7f07d19268986494dd60228e07ece9c07d43c..d6b83378892e76b5c5e3276a31e78199a2a472c9 100644 (file)
@@ -56,17 +56,17 @@ Default directory hash:   tea
 
 Group 0: (Blocks 1-1024)
   Primary superblock at 1, Group descriptor at 2
-  Block bitmap at 33 (+32), Inode bitmap at 34 (+33)
-  Inode table at 35-66 (+34)
+  Block bitmap at 35 (+34), Inode bitmap at 36 (+35)
+  Inode table at 3-34 (+2)
   975 free blocks, 245 free inodes, 2 directories
-  Free blocks: 16-32, 67-1024
+  Free blocks: 50-1024
   Free inodes: 12-256
 Group 1: (Blocks 1025-2048)
   Backup superblock at 1025, Group descriptor at 1026
-  Block bitmap at 1070 (+45), Inode bitmap at 1071 (+46)
+  Block bitmap at 1072 (+47), Inode bitmap at 1073 (+48)
   Inode table at 1027-1058 (+2)
   988 free blocks, 256 free inodes, 0 directories
-  Free blocks: 1059-1069, 1072-2048
+  Free blocks: 1059-1071, 1074-2048
   Free inodes: 257-512
 Group 2: (Blocks 2049-3072)
   Block bitmap at 2107 (+58), Inode bitmap at 2108 (+59)
@@ -76,10 +76,10 @@ Group 2: (Blocks 2049-3072)
   Free inodes: 513-768
 Group 3: (Blocks 3073-4096)
   Backup superblock at 3073
-  Block bitmap at 3144 (+71), Inode bitmap at 3145 (+72)
+  Block bitmap at 3145 (+72), Inode bitmap at 3146 (+73)
   Inode table at 3074-3105 (+1)
   989 free blocks, 256 free inodes, 0 directories
-  Free blocks: 3106-3143, 3146-4096
+  Free blocks: 3106-3144, 3147-4096
   Free inodes: 769-1024
 Group 4: (Blocks 4097-5120)
   Block bitmap at 4181 (+84), Inode bitmap at 4182 (+85)
@@ -89,10 +89,10 @@ Group 4: (Blocks 4097-5120)
   Free inodes: 1025-1280
 Group 5: (Blocks 5121-6144)
   Backup superblock at 5121
-  Block bitmap at 5218 (+97), Inode bitmap at 5219 (+98)
+  Block bitmap at 5219 (+98), Inode bitmap at 5220 (+99)
   Inode table at 5122-5153 (+1)
   989 free blocks, 256 free inodes, 0 directories
-  Free blocks: 5154-5217, 5220-6144
+  Free blocks: 5154-5218, 5221-6144
   Free inodes: 1281-1536
 Group 6: (Blocks 6145-7168)
   Block bitmap at 6255 (+110), Inode bitmap at 6256 (+111)
@@ -102,10 +102,10 @@ Group 6: (Blocks 6145-7168)
   Free inodes: 1537-1792
 Group 7: (Blocks 7169-8192)
   Backup superblock at 7169
-  Block bitmap at 7292 (+123), Inode bitmap at 7293 (+124)
+  Block bitmap at 7293 (+124), Inode bitmap at 7294 (+125)
   Inode table at 7170-7201 (+1)
   989 free blocks, 256 free inodes, 0 directories
-  Free blocks: 7202-7291, 7294-8192
+  Free blocks: 7202-7292, 7295-8192
   Free inodes: 1793-2048
 Group 8: (Blocks 8193-9216)
   Block bitmap at 8329 (+136), Inode bitmap at 8330 (+137)
@@ -115,10 +115,10 @@ Group 8: (Blocks 8193-9216)
   Free inodes: 2049-2304
 Group 9: (Blocks 9217-10240)
   Backup superblock at 9217
-  Block bitmap at 9366 (+149), Inode bitmap at 9367 (+150)
+  Block bitmap at 9367 (+150), Inode bitmap at 9368 (+151)
   Inode table at 9218-9249 (+1)
   989 free blocks, 256 free inodes, 0 directories
-  Free blocks: 9250-9365, 9368-10240
+  Free blocks: 9250-9366, 9369-10240
   Free inodes: 2305-2560
 Group 10: (Blocks 10241-11264)
   Block bitmap at 10403 (+162), Inode bitmap at 10404 (+163)
@@ -212,10 +212,10 @@ Group 24: (Blocks 24577-25600)
   Free inodes: 6145-6400
 Group 25: (Blocks 25601-26624)
   Backup superblock at 25601
-  Block bitmap at 25958 (+357), Inode bitmap at 25959 (+358)
+  Block bitmap at 25959 (+358), Inode bitmap at 25960 (+359)
   Inode table at 25602-25633 (+1)
   989 free blocks, 256 free inodes, 0 directories
-  Free blocks: 25634-25957, 25960-26624
+  Free blocks: 25634-25958, 25961-26624
   Free inodes: 6401-6656
 Group 26: (Blocks 26625-27648)
   Block bitmap at 26995 (+370), Inode bitmap at 26996 (+371)
@@ -225,10 +225,10 @@ Group 26: (Blocks 26625-27648)
   Free inodes: 6657-6912
 Group 27: (Blocks 27649-28672)
   Backup superblock at 27649
-  Block bitmap at 28032 (+383), Inode bitmap at 28033 (+384)
+  Block bitmap at 28033 (+384), Inode bitmap at 28034 (+385)
   Inode table at 27650-27681 (+1)
   989 free blocks, 256 free inodes, 0 directories
-  Free blocks: 27682-28031, 28034-28672
+  Free blocks: 27682-28032, 28035-28672
   Free inodes: 6913-7168
 Group 28: (Blocks 28673-29696)
   Block bitmap at 29069 (+396), Inode bitmap at 29070 (+397)
@@ -250,24 +250,24 @@ Group 30: (Blocks 30721-31744)
   Free inodes: 7681-7936
 Group 31: (Blocks 31745-32768)
   Group descriptor at 31745
-  Block bitmap at 32180 (+435), Inode bitmap at 32181 (+436)
+  Block bitmap at 32181 (+436), Inode bitmap at 32182 (+437)
   Inode table at 31746-31777 (+1)
   989 free blocks, 256 free inodes, 0 directories
-  Free blocks: 31778-32179, 32182-32768
+  Free blocks: 31778-32180, 32183-32768
   Free inodes: 7937-8192
 Group 32: (Blocks 32769-33792)
   Group descriptor at 32769
-  Block bitmap at 33217 (+448), Inode bitmap at 33218 (+449)
+  Block bitmap at 33218 (+449), Inode bitmap at 33219 (+450)
   Inode table at 32770-32801 (+1)
   989 free blocks, 256 free inodes, 0 directories
-  Free blocks: 32802-33216, 33219-33792
+  Free blocks: 32802-33217, 33220-33792
   Free inodes: 8193-8448
 Group 33: (Blocks 33793-34816)
   Group descriptor at 33793
-  Block bitmap at 34254 (+461), Inode bitmap at 34255 (+462)
+  Block bitmap at 34255 (+462), Inode bitmap at 34256 (+463)
   Inode table at 33794-33825 (+1)
   989 free blocks, 256 free inodes, 0 directories
-  Free blocks: 33826-34253, 34256-34816
+  Free blocks: 33826-34254, 34257-34816
   Free inodes: 8449-8704
 Group 34: (Blocks 34817-35840)
   Block bitmap at 35291 (+474), Inode bitmap at 35292 (+475)
@@ -361,10 +361,10 @@ Group 48: (Blocks 49153-50176)
   Free inodes: 12289-12544
 Group 49: (Blocks 50177-51200)
   Backup superblock at 50177
-  Block bitmap at 50846 (+669), Inode bitmap at 50847 (+670)
+  Block bitmap at 50847 (+670), Inode bitmap at 50848 (+671)
   Inode table at 50178-50209 (+1)
   989 free blocks, 256 free inodes, 0 directories
-  Free blocks: 50210-50845, 50848-51200
+  Free blocks: 50210-50846, 50849-51200
   Free inodes: 12545-12800
 Group 50: (Blocks 51201-52224)
   Block bitmap at 51883 (+682), Inode bitmap at 51884 (+683)
@@ -446,24 +446,24 @@ Group 62: (Blocks 63489-64512)
   Free inodes: 15873-16128
 Group 63: (Blocks 64513-65536)
   Group descriptor at 64513
-  Block bitmap at 65364 (+851), Inode bitmap at 65365 (+852)
+  Block bitmap at 65365 (+852), Inode bitmap at 65366 (+853)
   Inode table at 64514-64545 (+1)
   989 free blocks, 256 free inodes, 0 directories
-  Free blocks: 64546-65363, 65366-65536
+  Free blocks: 64546-65364, 65367-65536
   Free inodes: 16129-16384
 Group 64: (Blocks 65537-66560)
   Group descriptor at 65537
-  Block bitmap at 66401 (+864), Inode bitmap at 66402 (+865)
+  Block bitmap at 66402 (+865), Inode bitmap at 66403 (+866)
   Inode table at 65538-65569 (+1)
   989 free blocks, 256 free inodes, 0 directories
-  Free blocks: 65570-66400, 66403-66560
+  Free blocks: 65570-66401, 66404-66560
   Free inodes: 16385-16640
 Group 65: (Blocks 66561-67584)
   Group descriptor at 66561
-  Block bitmap at 67438 (+877), Inode bitmap at 67439 (+878)
+  Block bitmap at 67439 (+878), Inode bitmap at 67440 (+879)
   Inode table at 66562-66593 (+1)
   989 free blocks, 256 free inodes, 0 directories
-  Free blocks: 66594-67437, 67440-67584
+  Free blocks: 66594-67438, 67441-67584
   Free inodes: 16641-16896
 Group 66: (Blocks 67585-68608)
   Block bitmap at 68475 (+890), Inode bitmap at 68476 (+891)
@@ -557,10 +557,10 @@ Group 80: (Blocks 81921-82944)
   Free inodes: 20481-20736
 Group 81: (Blocks 82945-83968)
   Backup superblock at 82945
-  Block bitmap at 83038 (+93), Inode bitmap at 83039 (+94)
+  Block bitmap at 83040 (+95), Inode bitmap at 83041 (+96)
   Inode table at 82946-82977 (+1)
   989 free blocks, 256 free inodes, 0 directories
-  Free blocks: 82978-83037, 83040-83968
+  Free blocks: 82978-83039, 83042-83968
   Free inodes: 20737-20992
 Group 82: (Blocks 83969-84992)
   Block bitmap at 84075 (+106), Inode bitmap at 84076 (+107)
@@ -642,24 +642,24 @@ Group 94: (Blocks 96257-97280)
   Free inodes: 24065-24320
 Group 95: (Blocks 97281-98304)
   Group descriptor at 97281
-  Block bitmap at 97556 (+275), Inode bitmap at 97557 (+276)
+  Block bitmap at 97558 (+277), Inode bitmap at 97559 (+278)
   Inode table at 97282-97313 (+1)
   989 free blocks, 256 free inodes, 0 directories
-  Free blocks: 97314-97555, 97558-98304
+  Free blocks: 97314-97557, 97560-98304
   Free inodes: 24321-24576
 Group 96: (Blocks 98305-99328)
   Group descriptor at 98305
-  Block bitmap at 98593 (+288), Inode bitmap at 98594 (+289)
+  Block bitmap at 98595 (+290), Inode bitmap at 98596 (+291)
   Inode table at 98306-98337 (+1)
   989 free blocks, 256 free inodes, 0 directories
-  Free blocks: 98338-98592, 98595-99328
+  Free blocks: 98338-98594, 98597-99328
   Free inodes: 24577-24832
 Group 97: (Blocks 99329-100352)
   Group descriptor at 99329
-  Block bitmap at 99630 (+301), Inode bitmap at 99631 (+302)
+  Block bitmap at 99632 (+303), Inode bitmap at 99633 (+304)
   Inode table at 99330-99361 (+1)
   989 free blocks, 256 free inodes, 0 directories
-  Free blocks: 99362-99629, 99632-100352
+  Free blocks: 99362-99631, 99634-100352
   Free inodes: 24833-25088
 Group 98: (Blocks 100353-101376)
   Block bitmap at 100667 (+314), Inode bitmap at 100668 (+315)
@@ -825,10 +825,10 @@ Group 124: (Blocks 126977-128000)
   Free inodes: 31745-32000
 Group 125: (Blocks 128001-129024)
   Backup superblock at 128001
-  Block bitmap at 128666 (+665), Inode bitmap at 128667 (+666)
+  Block bitmap at 128668 (+667), Inode bitmap at 128669 (+668)
   Inode table at 128002-128033 (+1)
   989 free blocks, 256 free inodes, 0 directories
-  Free blocks: 128034-128665, 128668-129024
+  Free blocks: 128034-128667, 128670-129024
   Free inodes: 32001-32256
 Group 126: (Blocks 129025-130048)
   Block bitmap at 129703 (+678), Inode bitmap at 129704 (+679)
@@ -838,8 +838,8 @@ Group 126: (Blocks 129025-130048)
   Free inodes: 32257-32512
 Group 127: (Blocks 130049-131071)
   Group descriptor at 130049
-  Block bitmap at 130742 (+693), Inode bitmap at 130743 (+694)
+  Block bitmap at 130744 (+695), Inode bitmap at 130745 (+696)
   Inode table at 130050-130081 (+1)
   988 free blocks, 256 free inodes, 0 directories
-  Free blocks: 130082-130741, 130744-131071
+  Free blocks: 130082-130743, 130746-131071
   Free inodes: 32513-32768