linux/fs/ext4
Eric Whitney 3258386aba ext4: reset retry counter when ext4_alloc_file_blocks() makes progress
Change the retry policy in ext4_alloc_file_blocks() to allow for a full
retry cycle whenever a portion of an allocation request has been
fulfilled.  A large allocation request often results in multiple calls
to ext4_map_blocks(), each of which is potentially subject to a
temporary ENOSPC condition and retry cycle.  The current code only
allows for a single retry cycle.

This patch does not address a known bug or reported complaint.
However, it should make block allocation for fallocate and zero range
more robust.

In addition, simplify the conditional controlling the allocation while
loop, where testing len alone is sufficient.  Remove the assignment to
ret2 in the error path after the call to ext4_map_blocks() since its
value isn't subsequently used.

Signed-off-by: Eric Whitney <enwlinux@gmail.com>
Link: https://lore.kernel.org/r/20210113221403.18258-1-enwlinux@gmail.com
Signed-off-by: Theodore Ts'o <tytso@mit.edu>
2021-02-08 18:03:56 -05:00
..
acl.c ext4: main fast-commit commit path 2020-10-21 23:22:37 -04:00
acl.h ext4: fix up remaining files with SPDX cleanups 2017-12-17 22:00:59 -05:00
balloc.c ext4: use ASSERT() to replace J_ASSERT() 2020-12-03 09:36:57 -05:00
bitmap.c License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
block_validity.c ext4: standardize error message in ext4_protect_reserved_inode() 2020-12-17 13:30:55 -05:00
dir.c f2fs-for-5.11-rc1 2020-12-17 11:18:00 -08:00
ext4_extents.h ext4: fix EXT_MAX_EXTENT/INDEX to check for zeroed eh_max 2020-06-03 23:16:49 -04:00
ext4_jbd2.c ext4: drop ext4_handle_dirty_super() 2020-12-22 13:08:46 -05:00
ext4_jbd2.h ext4: drop ext4_handle_dirty_super() 2020-12-22 13:08:46 -05:00
ext4.h Various bug fixes and cleanups for ext4; no new features this cycle. 2020-12-24 14:16:02 -08:00
extents_status.c ext4: fast commit recovery path 2020-10-21 23:22:38 -04:00
extents_status.h ext4: fix extent_status trace points 2020-01-25 02:03:03 -05:00
extents.c ext4: reset retry counter when ext4_alloc_file_blocks() makes progress 2021-02-08 18:03:56 -05:00
fast_commit.c ext4: Change list_for_each* to list_for_each_entry* 2021-02-03 00:05:01 -05:00
fast_commit.h ext4: make fast_commit.h byte identical with e2fsprogs/fast_commit.h 2020-12-17 13:30:45 -05:00
file.c ext4: don't leak old mountpoint samples 2020-12-22 13:08:46 -05:00
fsmap.c jbd2: rename j_maxlen to j_total_len and add jbd2_journal_max_txn_bufs 2020-11-06 23:01:02 -05:00
fsmap.h ext4: fix up remaining files with SPDX cleanups 2017-12-17 22:00:59 -05:00
fsync.c ext4: use ASSERT() to replace J_ASSERT() 2020-12-03 09:36:57 -05:00
hash.c ext4: use generic casefolding support 2020-10-28 13:43:13 -04:00
ialloc.c The siginificant new ext4 feature this time around is Harshad's new 2020-10-22 10:31:08 -07:00
indirect.c ext4: use ASSERT() to replace J_ASSERT() 2020-12-03 09:36:57 -05:00
inline.c ext4: unlock xattr_sem properly in ext4_inline_data_truncate() 2020-11-06 22:52:36 -05:00
inode-test.c fs: ext4: Modify inode-test.c to use KUnit parameterized testing feature 2020-12-02 16:07:25 -07:00
inode.c ext4: drop ext4_handle_dirty_super() 2020-12-22 13:08:46 -05:00
ioctl.c A number of bug fixes for ext4: 2021-01-15 14:54:24 -08:00
Kconfig ext4: replace HTTP links with HTTPS ones 2020-08-06 01:01:57 -04:00
Makefile ext4 / jbd2: add fast commit initialization 2020-10-21 23:22:26 -04:00
mballoc.c ext4: avoid s_mb_prefetch to be zero in individual scenarios 2020-12-22 13:08:45 -05:00
mballoc.h ext4: limit the length of per-inode prealloc list 2020-08-19 12:04:36 -04:00
migrate.c ext4: handle ext4_mark_inode_dirty errors 2020-06-03 23:16:50 -04:00
mmp.c ext4: use common helpers in all places reading metadata buffers 2020-10-18 10:37:14 -04:00
move_extent.c ext4: use common helpers in all places reading metadata buffers 2020-10-18 10:37:14 -04:00
namei.c ext4: fix potential htree index checksum corruption 2021-02-04 00:05:20 -05:00
page-io.c ext4: remove unnecessary wbc parameter from ext4_bio_write_page 2020-12-22 13:08:45 -05:00
readpage.c Improvements to ext4's block allocator performance for very large file 2020-08-21 11:03:38 -07:00
resize.c ext4: drop ext4_handle_dirty_super() 2020-12-22 13:08:46 -05:00
super.c ext4: don't try to processed freed blocks until mballoc is initialized 2021-02-02 23:16:01 -05:00
symlink.c ext4: switch to fscrypt_get_symlink() 2018-01-11 22:10:40 -05:00
sysfs.c block: switch partition lookup to use struct block_device 2020-12-01 14:53:40 -07:00
truncate.h ext4: handle layout changes to pinned DAX mappings 2018-07-29 17:00:22 -04:00
verity.c mm/readahead: make page_cache_ra_unbounded take a readahead_control 2020-10-16 11:11:16 -07:00
xattr_hurd.c ext4: support xattr gnu.* namespace for the Hurd 2020-06-12 13:23:34 -04:00
xattr_security.c ext4: use XATTR_CREATE in ext4_initxattrs() 2018-05-10 11:52:14 -04:00
xattr_trusted.c License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
xattr_user.c License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
xattr.c ext4: drop ext4_handle_dirty_super() 2020-12-22 13:08:46 -05:00
xattr.h ext4: support xattr gnu.* namespace for the Hurd 2020-06-12 13:23:34 -04:00