@@ -906,25 +906,28 @@ copy_present_pte(struct vm_area_struct *dst_vma, struct vm_area_struct *src_vma,
906
906
unsigned long vm_flags = src_vma -> vm_flags ;
907
907
pte_t pte = * src_pte ;
908
908
struct page * page ;
909
+ struct folio * folio ;
909
910
910
911
page = vm_normal_page (src_vma , addr , pte );
911
- if (page && PageAnon (page )) {
912
+ if (page )
913
+ folio = page_folio (page );
914
+ if (page && folio_test_anon (folio )) {
912
915
/*
913
916
* If this page may have been pinned by the parent process,
914
917
* copy the page immediately for the child so that we'll always
915
918
* guarantee the pinned page won't be randomly replaced in the
916
919
* future.
917
920
*/
918
- get_page ( page );
921
+ folio_get ( folio );
919
922
if (unlikely (page_try_dup_anon_rmap (page , false, src_vma ))) {
920
- /* Page maybe pinned, we have to copy. */
921
- put_page ( page );
923
+ /* Page may be pinned, we have to copy. */
924
+ folio_put ( folio );
922
925
return copy_present_page (dst_vma , src_vma , dst_pte , src_pte ,
923
926
addr , rss , prealloc , page );
924
927
}
925
928
rss [MM_ANONPAGES ]++ ;
926
929
} else if (page ) {
927
- get_page ( page );
930
+ folio_get ( folio );
928
931
page_dup_file_rmap (page , false);
929
932
rss [mm_counter_file (page )]++ ;
930
933
}
@@ -937,7 +940,7 @@ copy_present_pte(struct vm_area_struct *dst_vma, struct vm_area_struct *src_vma,
937
940
ptep_set_wrprotect (src_mm , addr , src_pte );
938
941
pte = pte_wrprotect (pte );
939
942
}
940
- VM_BUG_ON (page && PageAnon ( page ) && PageAnonExclusive (page ));
943
+ VM_BUG_ON (page && folio_test_anon ( folio ) && PageAnonExclusive (page ));
941
944
942
945
/*
943
946
* If it's a shared mapping, mark it clean in
0 commit comments