| From a2b6f2ab3e144f8e23666aafeba0e4d9ea4b7975 Mon Sep 17 00:00:00 2001 |
| From: "Vishal Moola (Oracle)" <vishal.moola@gmail.com> |
| Date: Wed, 7 Jun 2023 13:41:19 -0700 |
| Subject: afs: Fix dangling folio ref counts in writeback |
| |
| From: Vishal Moola (Oracle) <vishal.moola@gmail.com> |
| |
| 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) <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/ |
| Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org> |
| --- |
| fs/afs/write.c | 1 + |
| 1 file changed, 1 insertion(+) |
| |
| 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; |
| } |
| -- |
| 2.41.0 |
| |