mirror of
https://github.com/torvalds/linux
synced 2024-11-05 18:23:50 +00:00
afs: Fix waiting for writeback then skipping folio
Commitacc8d8588c
converted afs_writepages_region() to write back a folio batch. The function waits for writeback to a folio, but then proceeds to the rest of the batch without trying to write that folio again. This patch fixes has it attempt to write the folio again. [DH: Also remove an 'else' that adding a goto makes redundant] Fixes:acc8d8588c
("afs: convert afs_writepages_region() to use filemap_get_folios_tag()") Signed-off-by: Vishal Moola (Oracle) <vishal.moola@gmail.com> Signed-off-by: David Howells <dhowells@redhat.com> cc: Marc Dionne <marc.dionne@auristor.com> cc: linux-afs@lists.infradead.org Link: https://lore.kernel.org/r/20230607204120.89416-2-vishal.moola@gmail.com/
This commit is contained in:
parent
a2b6f2ab3e
commit
819da022dd
1 changed files with 4 additions and 2 deletions
|
@ -731,6 +731,7 @@ static int afs_writepages_region(struct address_space *mapping,
|
|||
* (changing page->mapping to NULL), or even swizzled
|
||||
* back from swapper_space to tmpfs file mapping
|
||||
*/
|
||||
try_again:
|
||||
if (wbc->sync_mode != WB_SYNC_NONE) {
|
||||
ret = folio_lock_killable(folio);
|
||||
if (ret < 0) {
|
||||
|
@ -757,9 +758,10 @@ static int afs_writepages_region(struct address_space *mapping,
|
|||
#ifdef CONFIG_AFS_FSCACHE
|
||||
folio_wait_fscache(folio);
|
||||
#endif
|
||||
} else {
|
||||
start += folio_size(folio);
|
||||
goto try_again;
|
||||
}
|
||||
|
||||
start += folio_size(folio);
|
||||
if (wbc->sync_mode == WB_SYNC_NONE) {
|
||||
if (skips >= 5 || need_resched()) {
|
||||
*_next = start;
|
||||
|
|
Loading…
Reference in a new issue