diff --git a/mm/shmem.c b/mm/shmem.c index aeeddf612baa..07b8e1400c67 100644 --- a/mm/shmem.c +++ b/mm/shmem.c @@ -1651,8 +1651,8 @@ static int shmem_writepage(struct page *page, struct writeback_control *wbc) BUG_ON(folio_mapped(folio)); return swap_writepage(&folio->page, wbc); } - - list_del_init(&info->swaplist); + if (!info->swapped) + list_del_init(&info->swaplist); mutex_unlock(&shmem_swaplist_mutex); if (nr_pages > 1) goto try_split;