From: Vishal Moola (Oracle) Date: Wed, 7 Jun 2023 20:41:19 +0000 (-0700) Subject: afs: Fix dangling folio ref counts in writeback X-Git-Tag: v6.3.10~187 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=e98ffc5f9042e7d460c8224e1268b50ee546d3a1;p=thirdparty%2Fkernel%2Fstable.git afs: Fix dangling folio ref counts in writeback commit a2b6f2ab3e144f8e23666aafeba0e4d9ea4b7975 upstream. 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) Signed-off-by: David Howells cc: Marc Dionne cc: linux-afs@lists.infradead.org Link: https://lore.kernel.org/r/20230607204120.89416-1-vishal.moola@gmail.com/ Signed-off-by: Greg Kroah-Hartman --- diff --git a/fs/afs/write.c b/fs/afs/write.c index 571f3b9a417e5..4b6f05bdbafa0 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; }