Curt Wohlgemuth 8a57d9d61a ext4: check for a good block group before loading buddy pages
This adds a new field in ext4_group_info to cache the largest available
block range in a block group; and don't load the buddy pages until *after*
we've done a sanity check on the block group.

With large allocation requests (e.g., fallocate(), 8MiB) and relatively full
partitions, it's easy to have no block groups with a block extent large
enough to satisfy the input request length.  This currently causes the loop
during cr == 0 in ext4_mb_regular_allocator() to load the buddy bitmap pages
for EVERY block group.  That can be a lot of pages.  The patch below allows
us to call ext4_mb_good_group() BEFORE we load the buddy pages (although we
have check again after we lock the block group).

Addresses-Google-Bug: #2578108
Addresses-Google-Bug: #2704453

Signed-off-by: Curt Wohlgemuth <curtw@google.com>
Signed-off-by: "Theodore Ts'o" <tytso@mit.edu>
2010-05-16 15:00:00 -04:00
..
2010-04-22 11:42:00 +02:00
2010-05-03 10:49:25 -07:00
2010-04-26 15:39:08 -04:00
2010-05-03 07:36:01 -07:00
2010-04-27 16:26:03 -07:00
2010-01-26 22:22:26 -05:00
2010-04-08 15:35:20 +02:00
2010-03-12 15:52:35 -08:00
2009-12-16 07:20:13 -08:00
2010-03-06 11:26:29 -08:00
2010-03-19 08:05:10 +01:00
2009-09-24 07:21:03 -07:00
2010-03-03 14:13:08 -05:00
2009-12-17 04:52:13 -05:00
2010-03-06 11:26:29 -08:00
2010-03-06 11:26:29 -08:00
2010-03-03 14:07:59 -05:00
2010-04-23 10:39:48 -07:00
2010-03-08 16:55:37 +01:00
2009-12-17 10:51:40 -05:00
2010-03-12 15:52:32 -08:00
2010-04-25 08:54:42 +02:00
2009-12-16 12:16:49 -05:00