kernel-fxtec-pro1x/fs/ext4
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
..
acl.c sanitize xattr handler prototypes 2009-12-16 12:16:49 -05:00
acl.h ext[234]: move over to 'check_acl' permission model 2009-09-08 11:09:04 -07:00
balloc.c ext4: don't use quota reservation for speculative metadata 2010-05-16 11:00:00 -04:00
bitmap.c ext4: Change unsigned long to unsigned int 2008-11-05 00:14:04 -05:00
block_validity.c include cleanup: Update gfp.h and slab.h includes to prepare for breaking implicit slab.h inclusion from percpu.h 2010-03-30 22:02:32 +09:00
dir.c ext4: fix up rb_root initializations to use RB_ROOT 2010-03-04 22:25:21 -05:00
ext4.h ext4: check for a good block group before loading buddy pages 2010-05-16 15:00:00 -04:00
ext4_extents.h ext4: Calculate metadata requirements more accurately 2010-01-01 02:41:30 -05:00
ext4_jbd2.c ext4: Fix BUG_ON at fs/buffer.c:652 in no journal mode 2010-02-16 15:06:29 -05:00
ext4_jbd2.h ext4: use ext4_get_block_write in buffer write 2010-03-04 16:14:02 -05:00
extents.c ext4: Prevent creation of files larger than RLIMIT_FSIZE using fallocate 2010-05-16 14:00:00 -04:00
file.c Merge branch 'for_linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jack/linux-fs-2.6 2010-03-05 13:20:53 -08:00
fsync.c ext4: check missed return value in ext4_sync_file() 2010-05-10 00:00:00 -04:00
hash.c ext4: Add support for non-native signed/unsigned htree hash algorithms 2008-10-28 13:21:44 -04:00
ialloc.c ext4: clean up inode bitmaps manipulation in ext4_free_inode 2010-05-16 07:00:00 -04:00
inode.c ext4: Remove extraneous newlines in ext4_msg() calls 2010-05-16 13:00:00 -04:00
ioctl.c ext4: allow defrag (EXT4_IOC_MOVE_EXT) in 32bit compat mode 2010-05-15 00:00:00 -04:00
Kconfig ext4: Don't ask about supporting ext2/3 in ext4 if ext4 is not configured 2009-12-21 10:54:09 -05:00
Makefile ext4: online defrag -- Add EXT4_IOC_MOVE_EXT ioctl 2009-06-17 19:24:03 -04:00
mballoc.c ext4: check for a good block group before loading buddy pages 2010-05-16 15:00:00 -04:00
mballoc.h ext4: consolidate in_range() definitions 2010-03-03 23:55:01 -05:00
migrate.c include cleanup: Update gfp.h and slab.h includes to prepare for breaking implicit slab.h inclusion from percpu.h 2010-03-30 22:02:32 +09:00
move_extent.c ext4: Fix coding style in fs/ext4/move_extent.c 2010-05-11 00:00:00 -04:00
namei.c Merge branch 'for_linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jack/linux-fs-2.6 2010-03-05 13:20:53 -08:00
resize.c ext4: check s_log_groups_per_flex in online resize code 2010-05-16 01:00:00 -04:00
super.c ext4: Remove extraneous newlines in ext4_msg() calls 2010-05-16 13:00:00 -04:00
symlink.c ext4: symlink must be handled via filesystem specific operation 2010-05-16 02:00:00 -04:00
xattr.c Merge branch 'for_linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jack/linux-fs-2.6 2010-03-05 13:20:53 -08:00
xattr.h ext4: Rename ext4dev to ext4 2008-10-10 20:02:48 -04:00
xattr_security.c include cleanup: Update gfp.h and slab.h includes to prepare for breaking implicit slab.h inclusion from percpu.h 2010-03-30 22:02:32 +09:00
xattr_trusted.c sanitize xattr handler prototypes 2009-12-16 12:16:49 -05:00
xattr_user.c sanitize xattr handler prototypes 2009-12-16 12:16:49 -05:00