| From 3574c322b1d0eb32dbd76b469cb08f9a67641599 Mon Sep 17 00:00:00 2001 |
| From: Jan Kara <jack@suse.cz> |
| Date: Wed, 14 Jan 2026 19:28:19 +0100 |
| Subject: ext4: use optimized mballoc scanning regardless of inode format |
| |
| From: Jan Kara <jack@suse.cz> |
| |
| commit 3574c322b1d0eb32dbd76b469cb08f9a67641599 upstream. |
| |
| Currently we don't used mballoc optimized scanning (using max free |
| extent order and avg free extent order group lists) for inodes with |
| indirect block based format. This is confusing for users and I don't see |
| a good reason for that. Even with indirect block based inode format we |
| can spend big amount of time searching for free blocks for large |
| filesystems with fragmented free space. To add to the confusion before |
| commit 077d0c2c78df ("ext4: make mb_optimize_scan performance mount |
| option work with extents") optimized scanning was applied *only* to |
| indirect block based inodes so that commit appears as a performance |
| regression to some users. Just use optimized scanning whenever it is |
| enabled by mount options. |
| |
| Reviewed-by: Baokun Li <libaokun1@huawei.com> |
| Reviewed-by: Zhang Yi <yi.zhang@huawei.com> |
| Signed-off-by: Jan Kara <jack@suse.cz> |
| Cc: stable@kernel.org |
| Link: https://patch.msgid.link/20260114182836.14120-4-jack@suse.cz |
| Signed-off-by: Theodore Ts'o <tytso@mit.edu> |
| Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org> |
| --- |
| fs/ext4/mballoc.c | 2 -- |
| 1 file changed, 2 deletions(-) |
| |
| --- a/fs/ext4/mballoc.c |
| +++ b/fs/ext4/mballoc.c |
| @@ -1148,8 +1148,6 @@ static inline int should_optimize_scan(s |
| return 0; |
| if (ac->ac_criteria >= CR_GOAL_LEN_SLOW) |
| return 0; |
| - if (!ext4_test_inode_flag(ac->ac_inode, EXT4_INODE_EXTENTS)) |
| - return 0; |
| return 1; |
| } |
| |