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

Currently, ext4_mb_get_buddy_page_lock() uses blocks_per_page to calculate
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, since ext4_mb_get_buddy_page_lock() already fully supports folio,
rename it to ext4_mb_get_buddy_folio_lock().

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-13-libaokun@huaweicloud.com>
Signed-off-by: Theodore Ts'o <tytso@mit.edu>
fs/ext4/mballoc.c