Commit 71fa1a53 authored by Matthew Wilcox (Oracle)'s avatar Matthew Wilcox (Oracle) Committed by Andrew Morton
Browse files

swap: convert swap_writepage() to use a folio

parent aedd74d4
Loading
Loading
Loading
Loading
+11 −10
Original line number Diff line number Diff line
@@ -180,29 +180,30 @@ int generic_swapfile_activate(struct swap_info_struct *sis,
 */
int swap_writepage(struct page *page, struct writeback_control *wbc)
{
	struct folio *folio = page_folio(page);
	int ret = 0;

	if (try_to_free_swap(page)) {
		unlock_page(page);
	if (folio_free_swap(folio)) {
		folio_unlock(folio);
		goto out;
	}
	/*
	 * Arch code may have to preserve more data than just the page
	 * contents, e.g. memory tags.
	 */
	ret = arch_prepare_to_swap(page);
	ret = arch_prepare_to_swap(&folio->page);
	if (ret) {
		set_page_dirty(page);
		unlock_page(page);
		folio_mark_dirty(folio);
		folio_unlock(folio);
		goto out;
	}
	if (frontswap_store(page) == 0) {
		set_page_writeback(page);
		unlock_page(page);
		end_page_writeback(page);
	if (frontswap_store(&folio->page) == 0) {
		folio_start_writeback(folio);
		folio_unlock(folio);
		folio_end_writeback(folio);
		goto out;
	}
	ret = __swap_writepage(page, wbc);
	ret = __swap_writepage(&folio->page, wbc);
out:
	return ret;
}