diff --git a/mm/hugetlb.c b/mm/hugetlb.c index f469315a6a0f..5b38fbef9441 100644 --- a/mm/hugetlb.c +++ b/mm/hugetlb.c @@ -3678,6 +3678,12 @@ int huge_add_to_page_cache(struct page *page, struct address_space *mapping, return err; ClearPagePrivate(page); + /* + * set page dirty so that it will not be removed from cache/file + * by non-hugetlbfs specific code paths. + */ + set_page_dirty(page); + spin_lock(&inode->i_lock); inode->i_blocks += blocks_per_huge_page(h); spin_unlock(&inode->i_lock);