* Frees the given page if it belongs to a reservation. Returns TRUE if the * page is freed and FALSE otherwise. */
| 1034 | * page is freed and FALSE otherwise. |
| 1035 | */ |
| 1036 | boolean_t |
| 1037 | vm_reserv_free_page(vm_page_t m) |
| 1038 | { |
| 1039 | vm_reserv_t rv; |
| 1040 | boolean_t ret; |
| 1041 | |
| 1042 | rv = vm_reserv_from_page(m); |
| 1043 | if (rv->object == NULL) |
| 1044 | return (FALSE); |
| 1045 | vm_reserv_lock(rv); |
| 1046 | /* Re-validate after lock. */ |
| 1047 | if (rv->object != NULL) { |
| 1048 | vm_reserv_depopulate(rv, m - rv->pages); |
| 1049 | ret = TRUE; |
| 1050 | } else |
| 1051 | ret = FALSE; |
| 1052 | vm_reserv_unlock(rv); |
| 1053 | |
| 1054 | return (ret); |
| 1055 | } |
| 1056 | |
| 1057 | /* |
| 1058 | * Initializes the reservation management system. Specifically, initializes |
no test coverage detected