[PATCH mm-unstable] mm/shmem: writeout free swap if swap_writeout() reactivates fix

Hugh Dickins posted 1 patch 2 months, 2 weeks ago
mm/shmem.c | 4 +---
1 file changed, 1 insertion(+), 3 deletions(-)
[PATCH mm-unstable] mm/shmem: writeout free swap if swap_writeout() reactivates fix
Posted by Hugh Dickins 2 months, 2 weeks ago
Per Baolin: use shmem_recalc_inode() rather than open coding.

Signed-off-by: Hugh Dickins <hughd@google.com>
---
 mm/shmem.c | 4 +---
 1 file changed, 1 insertion(+), 3 deletions(-)

diff --git a/mm/shmem.c b/mm/shmem.c
index 5a7ce4c8bad6..927ccc4a6002 100644
--- a/mm/shmem.c
+++ b/mm/shmem.c
@@ -1692,9 +1692,7 @@ int shmem_writeout(struct folio *folio, struct swap_iocb **plug,
 				__GFP_HIGH | __GFP_NOMEMALLOC | __GFP_NOWARN);
 		/* Swap entry might be erased by racing shmem_free_swap() */
 		if (!error) {
-			spin_lock(&info->lock);
-			info->swapped -= nr_pages;
-			spin_unlock(&info->lock);
+			shmem_recalc_inode(inode, 0, -nr_pages);
 			swap_free_nr(folio->swap, nr_pages);
 		}
 
-- 
2.43.0