summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--lib/ext2fs/ChangeLog8
-rw-r--r--lib/ext2fs/alloc_tables.c6
-rw-r--r--tests/ChangeLog5
-rw-r--r--tests/m_raid_opt/expect.186
4 files changed, 61 insertions, 44 deletions
diff --git a/lib/ext2fs/ChangeLog b/lib/ext2fs/ChangeLog
index 512ef3f7..3ce0f4dc 100644
--- a/lib/ext2fs/ChangeLog
+++ b/lib/ext2fs/ChangeLog
@@ -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
diff --git a/lib/ext2fs/alloc_tables.c b/lib/ext2fs/alloc_tables.c
index 0326321b..dec49bda 100644
--- a/lib/ext2fs/alloc_tables.c
+++ b/lib/ext2fs/alloc_tables.c
@@ -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)
diff --git a/tests/ChangeLog b/tests/ChangeLog
index c140f704..5e6854dc 100644
--- a/tests/ChangeLog
+++ b/tests/ChangeLog
@@ -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
diff --git a/tests/m_raid_opt/expect.1 b/tests/m_raid_opt/expect.1
index 6df7f07d..d6b83378 100644
--- a/tests/m_raid_opt/expect.1
+++ b/tests/m_raid_opt/expect.1
@@ -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