static vm_fault_t hugetlb_no_page(struct address_space *mapping,
                        struct vm_fault *vmf)
 {
+       u32 hash = hugetlb_fault_mutex_hash(mapping, vmf->pgoff);
+       bool new_folio, new_anon_folio = false;
        struct vm_area_struct *vma = vmf->vma;
        struct mm_struct *mm = vma->vm_mm;
        struct hstate *h = hstate_vma(vma);
        vm_fault_t ret = VM_FAULT_SIGBUS;
-       int anon_rmap = 0;
-       unsigned long size;
+       bool folio_locked = true;
        struct folio *folio;
+       unsigned long size;
        pte_t new_pte;
-       bool new_folio, new_pagecache_folio = false;
-       u32 hash = hugetlb_fault_mutex_hash(mapping, vmf->pgoff);
-       bool folio_locked = true;
 
        /*
         * Currently, we are forced to kill the process in the event the
                                ret = VM_FAULT_SIGBUS;
                                goto out;
                        }
-                       new_pagecache_folio = true;
                } else {
+                       new_anon_folio = true;
                        folio_lock(folio);
-                       anon_rmap = 1;
                }
        } else {
                /*
        if (!pte_same(huge_ptep_get(mm, vmf->address, vmf->pte), vmf->orig_pte))
                goto backout;
 
-       if (anon_rmap)
+       if (new_anon_folio)
                hugetlb_add_new_anon_rmap(folio, vma, vmf->address);
        else
                hugetlb_add_file_rmap(folio);
                 * No need to keep file folios locked. See comment in
                 * hugetlb_fault().
                 */
-               if (!anon_rmap) {
+               if (!new_anon_folio) {
                        folio_locked = false;
                        folio_unlock(folio);
                }
 backout:
        spin_unlock(vmf->ptl);
 backout_unlocked:
-       if (new_folio && !new_pagecache_folio)
+       /* We only need to restore reservations for private mappings */
+       if (new_anon_folio)
                restore_reserve_on_error(h, vma, vmf->address, folio);
 
        folio_unlock(folio);