result = SCAN_FAIL;
goto xa_locked;
}
- xas_store(&xas, hpage);
- if (xas_error(&xas)) {
- /* revert shmem_charge performed
- * in the previous condition
- */
- mapping->nrpages--;
- shmem_uncharge(mapping->host, 1);
- result = SCAN_STORE_FAILED;
- goto xa_locked;
- }
nr_none++;
continue;
}
* Accumulate the pages that are being collapsed.
*/
list_add_tail(&page->lru, &pagelist);
-
- /*
- * We can't get an ENOMEM here (because the allocation happened
- * before) but let's check for errors (XArray implementation
- * can be changed in the future)
- */
- WARN_ON_ONCE(xas_error(&xas));
continue;
out_unlock:
unlock_page(page);
}
}
- /* Here we can't get an ENOMEM (because entries were
- * previously allocated) But let's check for errors
- * (XArray implementation can be changed in the future)
- */
- WARN_ON_ONCE(xas_error(&xas));
xa_locked:
xas_unlock_irq(&xas);
xa_unlocked:
/* Join all the small entries into a single multi-index entry. */
xas_set_order(&xas, start, HPAGE_PMD_ORDER);
xas_store(&xas, hpage);
+ WARN_ON_ONCE(xas_error(&xas));
xas_unlock_irq(&xas);
/*