Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit cd648b8a authored by Jan Kara's avatar Jan Kara Committed by Theodore Ts'o
Browse files

ext4: trim allocation requests to group size



If filesystem groups are artifically small (using parameter -g to
mkfs.ext4), ext4_mb_normalize_request() can result in a request that is
larger than a block group. Trim the request size to not confuse
allocation code.

Reported-by: default avatar"Kirill A. Shutemov" <kirill.shutemov@linux.intel.com>
Signed-off-by: default avatarJan Kara <jack@suse.cz>
Signed-off-by: default avatarTheodore Ts'o <tytso@mit.edu>
Cc: stable@vger.kernel.org
parent 43c73221
Loading
Loading
Loading
Loading
+7 −0
Original line number Diff line number Diff line
@@ -3133,6 +3133,13 @@ ext4_mb_normalize_request(struct ext4_allocation_context *ac,
	if (ar->pright && start + size - 1 >= ar->lright)
		size -= start + size - ar->lright;

	/*
	 * Trim allocation request for filesystems with artificially small
	 * groups.
	 */
	if (size > EXT4_BLOCKS_PER_GROUP(ac->ac_sb))
		size = EXT4_BLOCKS_PER_GROUP(ac->ac_sb);

	end = start + size;

	/* check we don't cross already preallocated blocks */