diff options
author | Chengguang Xu <cgxu519@mykernel.net> | 2019-10-26 17:07:21 +0800 |
---|---|---|
committer | Jan Kara <jack@suse.cz> | 2019-10-31 15:40:44 +0100 |
commit | 30ef0e4085070312101be26c015f36277f02e12b (patch) | |
tree | 2d7cd78e1e0709fbd1db234a1df8b699b2bc912f /fs/ext2 | |
parent | 60e4cf67a582d64f07713eda5fcc8ccdaf7833e6 (diff) | |
download | linux-riscv-30ef0e4085070312101be26c015f36277f02e12b.tar.gz linux-riscv-30ef0e4085070312101be26c015f36277f02e12b.tar.bz2 linux-riscv-30ef0e4085070312101be26c015f36277f02e12b.zip |
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 <cgxu519@mykernel.net>
Signed-off-by: Jan Kara <jack@suse.cz>
Diffstat (limited to 'fs/ext2')
-rw-r--r-- | fs/ext2/balloc.c | 1 |
1 files changed, 0 insertions, 1 deletions
diff --git a/fs/ext2/balloc.c b/fs/ext2/balloc.c index 4664d324567c..19bce75d207b 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; } |