VM_BUG_ON_FOLIO(folio != xa_load(xas.xa, index), folio);
 
                /*
-                * We control three references to the folio:
+                * We control 2 + nr_pages references to the folio:
                 *  - we hold a pin on it;
-                *  - one reference from page cache;
+                *  - nr_pages reference from page cache;
                 *  - one from lru_isolate_folio;
                 * If those are the only references, then any new usage
                 * of the folio will have to fetch it from the page
                 * truncate, so any new usage will be blocked until we
                 * unlock folio after collapse/during rollback.
                 */
-               if (folio_ref_count(folio) != 3) {
+               if (folio_ref_count(folio) != 2 + folio_nr_pages(folio)) {
                        result = SCAN_PAGE_COUNT;
                        xas_unlock_irq(&xas);
                        folio_putback_lru(folio);
                folio_clear_active(folio);
                folio_clear_unevictable(folio);
                folio_unlock(folio);
-               folio_put_refs(folio, 3);
+               folio_put_refs(folio, 2 + folio_nr_pages(folio));
        }
 
        goto out;