diff options
author | Vishal Moola (Oracle) <vishal.moola@gmail.com> | 2023-06-07 23:41:19 +0300 |
---|---|---|
committer | David Howells <dhowells@redhat.com> | 2023-06-19 16:30:48 +0300 |
commit | a2b6f2ab3e144f8e23666aafeba0e4d9ea4b7975 (patch) | |
tree | 1de2687efca786689641db1738242ec54249515a | |
parent | 45a3e24f65e90a047bef86f927ebdc4c710edaa1 (diff) | |
download | linux-a2b6f2ab3e144f8e23666aafeba0e4d9ea4b7975.tar.xz |
afs: Fix dangling folio ref counts in writeback
Commit acc8d8588cb7 converted afs_writepages_region() to write back a
folio batch. If writeback needs rescheduling, the function exits without
dropping the references to the folios in fbatch. This patch fixes that.
[DH: Moved the added line before the _leave()]
Fixes: acc8d8588cb7 ("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-1-vishal.moola@gmail.com/
-rw-r--r-- | fs/afs/write.c | 1 |
1 files changed, 1 insertions, 0 deletions
diff --git a/fs/afs/write.c b/fs/afs/write.c index c822d6006033..fd433024070e 100644 --- a/fs/afs/write.c +++ b/fs/afs/write.c @@ -763,6 +763,7 @@ static int afs_writepages_region(struct address_space *mapping, if (wbc->sync_mode == WB_SYNC_NONE) { if (skips >= 5 || need_resched()) { *_next = start; + folio_batch_release(&fbatch); _leave(" = 0 [%llx]", *_next); return 0; } |