}
 #endif
 
-static bool hpage_collapse_alloc_folio(struct folio **folio, gfp_t gfp, int node,
-                                     nodemask_t *nmask)
-{
-       *folio = __folio_alloc(gfp, HPAGE_PMD_ORDER, node, nmask);
-
-       if (unlikely(!*folio)) {
-               count_vm_event(THP_COLLAPSE_ALLOC_FAILED);
-               return false;
-       }
-
-       count_vm_event(THP_COLLAPSE_ALLOC);
-       return true;
-}
-
 /*
  * If mmap_lock temporarily dropped, revalidate vma
  * before taking mmap_lock.
        int node = hpage_collapse_find_target_node(cc);
        struct folio *folio;
 
-       if (!hpage_collapse_alloc_folio(&folio, gfp, node, &cc->alloc_nmask)) {
+       folio = __folio_alloc(gfp, HPAGE_PMD_ORDER, node, &cc->alloc_nmask);
+       if (!folio) {
                *hpage = NULL;
+               count_vm_event(THP_COLLAPSE_ALLOC_FAILED);
                return SCAN_ALLOC_HUGE_PAGE_FAIL;
        }
 
+       count_vm_event(THP_COLLAPSE_ALLOC);
        if (unlikely(mem_cgroup_charge(folio, mm, gfp))) {
                folio_put(folio);
                *hpage = NULL;