linux/fs/ext4
Jan Kara d9b22cf9f5 ext4: fix stripe-unaligned allocations
When a filesystem is created using:

	mkfs.ext4 -b 4096 -E stride=512 <dev>

and we try to allocate 64MB extent, we will end up directly in
ext4_mb_complex_scan_group(). This is because the request is detected
as power-of-two allocation (so we start in ext4_mb_regular_allocator()
with ac_criteria == 0) however the check before
ext4_mb_simple_scan_group() refuses the direct buddy scan because the
allocation request is too large. Since cr == 0, the check whether we
should use ext4_mb_scan_aligned() fails as well and we fall back to
ext4_mb_complex_scan_group().

Fix the problem by checking for upper limit on power-of-two requests
directly when detecting them.

Reported-by: Ross Zwisler <ross.zwisler@linux.intel.com>
Signed-off-by: Jan Kara <jack@suse.cz>
Signed-off-by: Theodore Ts'o <tytso@mit.edu>
2017-02-10 00:50:56 -05:00
..
acl.c ext4: use current_time() for inode timestamps 2016-11-14 21:40:10 -05:00
acl.h
balloc.c
bitmap.c
block_validity.c ext4: add missing KERN_CONT to a few more debugging uses 2016-10-15 09:57:31 -04:00
dir.c ext4: remove unused variable 2016-09-30 02:14:56 -04:00
ext4_extents.h
ext4_jbd2.c ext4: add shutdown bit and check for it 2017-02-05 01:28:48 -05:00
ext4_jbd2.h ext4: do not perform data journaling when data is encrypted 2016-12-10 17:54:58 -05:00
ext4.h ext4: add EXT4_IOC_GOINGDOWN ioctl 2017-02-05 19:47:14 -05:00
extents_status.c
extents_status.h
extents.c ext4: do not polute the extents cache while shifting extents 2017-01-08 21:00:35 -05:00
file.c ext4: fix DAX write locking 2017-02-08 14:39:27 -05:00
fsync.c ext4: add shutdown bit and check for it 2017-02-05 01:28:48 -05:00
hash.c ext4: move halfmd4 into hash.c directly 2017-02-02 11:52:14 -05:00
ialloc.c ext4: add shutdown bit and check for it 2017-02-05 01:28:48 -05:00
indirect.c
inline.c ext4: add shutdown bit and check for it 2017-02-05 01:28:48 -05:00
inode.c ext4: add shutdown bit and check for it 2017-02-05 01:28:48 -05:00
ioctl.c ext4: add EXT4_IOC_GOINGDOWN ioctl 2017-02-05 19:47:14 -05:00
Kconfig ext4: Add select for CONFIG_FS_IOMAP 2016-11-22 23:21:58 -05:00
Makefile
mballoc.c ext4: fix stripe-unaligned allocations 2017-02-10 00:50:56 -05:00
mballoc.h ext4: add missing KERN_CONT to a few more debugging uses 2016-10-15 09:57:31 -04:00
migrate.c
mmp.c block,fs: use REQ_* flags directly 2016-11-01 09:43:26 -06:00
move_extent.c ext4: enforce online defrag restriction for encrypted files 2016-08-29 15:45:11 -04:00
namei.c ext4: add shutdown bit and check for it 2017-02-05 01:28:48 -05:00
page-io.c ext4: add shutdown bit and check for it 2017-02-05 01:28:48 -05:00
readpage.c
resize.c ext4: rename s_resize_flags to s_ext4_flags 2017-02-05 01:27:48 -05:00
super.c ext4: add EXT4_IOC_GOINGDOWN ioctl 2017-02-05 19:47:14 -05:00
symlink.c vfs: remove ".readlink = generic_readlink" assignments 2016-12-09 16:45:04 +01:00
sysfs.c ext4: do not advertise encryption support when disabled 2016-10-12 23:24:51 -04:00
truncate.h
xattr_security.c
xattr_trusted.c
xattr_user.c
xattr.c ext4: add shutdown bit and check for it 2017-02-05 01:28:48 -05:00
xattr.h ext4: fix deadlock between inline_data and ext4_expand_extra_isize_ea() 2017-01-11 21:50:46 -05:00