in shmem_writepage, we have to split the huge page when moving pages from page cache to swap because we don't support huge page in swap yet. Signed-off-by: Ning Qu <quning@xxxxxxxxx> --- mm/shmem.c | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/mm/shmem.c b/mm/shmem.c index 8fe17dd..68a0e1d 100644 --- a/mm/shmem.c +++ b/mm/shmem.c @@ -898,6 +898,13 @@ static int shmem_writepage(struct page *page, struct writeback_control *wbc) swp_entry_t swap; pgoff_t index; + /* TODO: we have to break the huge page at this point, + * since we have no idea how to recover a huge page from + * swap. + */ + if (PageTransCompound(page)) + split_huge_page(compound_trans_head(page)); + BUG_ON(!PageLocked(page)); mapping = page->mapping; index = page->index; @@ -946,7 +953,7 @@ static int shmem_writepage(struct page *page, struct writeback_control *wbc) if (shmem_falloc) goto redirty; } - clear_highpage(page); + clear_pagecache_page(page); flush_dcache_page(page); SetPageUptodate(page); } -- 1.8.4 -- To unsubscribe from this list: send the line "unsubscribe linux-fsdevel" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html