mm: use a folio in fault_dirty_shared_page()
authorZhangPeng <zhangpeng362@huawei.com>
Sat, 1 Jul 2023 03:28:52 +0000 (11:28 +0800)
committerAndrew Morton <akpm@linux-foundation.org>
Fri, 18 Aug 2023 17:12:01 +0000 (10:12 -0700)
We can replace four implicit calls to compound_head() with one by using
folio.

Link: https://lkml.kernel.org/r/20230701032853.258697-2-zhangpeng362@huawei.com
Signed-off-by: ZhangPeng <zhangpeng362@huawei.com>
Reviewed-by: Sidhartha Kumar <sidhartha.kumar@oracle.com>
Reviewed-by: Matthew Wilcox (Oracle) <willy@infradead.org>
Cc: Kefeng Wang <wangkefeng.wang@huawei.com>
Cc: Nanyong Sun <sunnanyong@huawei.com>
Cc: Sidhartha Kumar <sidhartha.kumar@oracle.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
mm/memory.c

index 33f0f28..e9f9944 100644 (file)
@@ -2965,20 +2965,20 @@ static vm_fault_t fault_dirty_shared_page(struct vm_fault *vmf)
 {
        struct vm_area_struct *vma = vmf->vma;
        struct address_space *mapping;
-       struct page *page = vmf->page;
+       struct folio *folio = page_folio(vmf->page);
        bool dirtied;
        bool page_mkwrite = vma->vm_ops && vma->vm_ops->page_mkwrite;
 
-       dirtied = set_page_dirty(page);
-       VM_BUG_ON_PAGE(PageAnon(page), page);
+       dirtied = folio_mark_dirty(folio);
+       VM_BUG_ON_FOLIO(folio_test_anon(folio), folio);
        /*
-        * Take a local copy of the address_space - page.mapping may be zeroed
-        * by truncate after unlock_page().   The address_space itself remains
-        * pinned by vma->vm_file's reference.  We rely on unlock_page()'s
+        * Take a local copy of the address_space - folio.mapping may be zeroed
+        * by truncate after folio_unlock().   The address_space itself remains
+        * pinned by vma->vm_file's reference.  We rely on folio_unlock()'s
         * release semantics to prevent the compiler from undoing this copying.
         */
-       mapping = page_rmapping(page);
-       unlock_page(page);
+       mapping = folio_raw_mapping(folio);
+       folio_unlock(folio);
 
        if (!page_mkwrite)
                file_update_time(vma->vm_file);