Regular allocator make four groups processing loops to find good group to allocate blocks. On 4th loop it accept any group, even if there is no free space at all. This patch adds group free space check to skip full groups. Sigend-off-by: Artem Blagodarenko <c17828@xxxxxxxx> --- fs/ext4/mballoc.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/fs/ext4/mballoc.c b/fs/ext4/mballoc.c index e2248083cdca..4e6c36ff1d55 100644 --- a/fs/ext4/mballoc.c +++ b/fs/ext4/mballoc.c @@ -2087,7 +2087,8 @@ static int ext4_mb_good_group(struct ext4_allocation_context *ac, return 1; break; case 3: - return 1; + /* Skip group without any free space */ + return free ? 1 : 0; default: BUG(); } -- 2.14.3