]> git.ipfire.org Git - thirdparty/linux.git/commit
ext4: support large block size in ext4_mb_load_buddy_gfp()
authorBaokun Li <libaokun1@huawei.com>
Fri, 21 Nov 2025 09:06:41 +0000 (17:06 +0800)
committerTheodore Ts'o <tytso@mit.edu>
Sat, 29 Nov 2025 03:35:27 +0000 (22:35 -0500)
commit6117f1806a7328e8d316eeeac66b2ba4e4539ba5
tree65d1ad6183330b9e10152c5ae09d33e83abc2497
parent2a8de76b2b0f84333a2778db04ce51811c260d9d
ext4: support large block size in ext4_mb_load_buddy_gfp()

Currently, ext4_mb_load_buddy_gfp() uses blocks_per_page to calculate the
folio index and offset. However, when blocksize is larger than PAGE_SIZE,
blocks_per_page becomes zero, leading to a potential division-by-zero bug.

To support BS > PS, use bytes to compute folio index and offset within
folio to get rid of blocks_per_page.

Also, if buddy and bitmap land in the same folio, we get that folio’s ref
instead of looking it up again before updating the buddy.

Signed-off-by: Baokun Li <libaokun1@huawei.com>
Reviewed-by: Zhang Yi <yi.zhang@huawei.com>
Reviewed-by: Jan Kara <jack@suse.cz>
Reviewed-by: Ojaswin Mujoo <ojaswin@linux.ibm.com>
Message-ID: <20251121090654.631996-12-libaokun@huaweicloud.com>
Signed-off-by: Theodore Ts'o <tytso@mit.edu>
fs/ext4/mballoc.c