From: Chengguang Xu Date: Sat, 26 Oct 2019 09:07:21 +0000 (+0800) Subject: ext2: don't set *count in the case of failure in ext2_try_to_allocate() X-Git-Url: http://git.maquefel.me/?a=commitdiff_plain;h=30ef0e4085070312101be26c015f36277f02e12b;p=linux.git ext2: don't set *count in the case of failure in ext2_try_to_allocate() Currently we set *count to num(value 0) in the failure of block allocation in ext2_try_to_allocate(). Without reservation, we reuse *count(value 0) to retry block allocation and wrong *count will cause only allocating maximum 1 block even though having sufficent free blocks in that block group. Finally, it probably cause significant fragmentation. Link: https://lore.kernel.org/r/20191026090721.23794-1-cgxu519@mykernel.net Signed-off-by: Chengguang Xu Signed-off-by: Jan Kara --- diff --git a/fs/ext2/balloc.c b/fs/ext2/balloc.c index 4664d324567c0..19bce75d207b4 100644 --- a/fs/ext2/balloc.c +++ b/fs/ext2/balloc.c @@ -736,7 +736,6 @@ repeat: *count = num; return grp_goal - num; fail_access: - *count = num; return -1; }