* Commit a queue state update that encodes a request for a deferred queue * operation. */
| 3483 | * operation. |
| 3484 | */ |
| 3485 | static bool |
| 3486 | vm_page_pqstate_commit_request(vm_page_t m, vm_page_astate_t *old, |
| 3487 | vm_page_astate_t new) |
| 3488 | { |
| 3489 | |
| 3490 | KASSERT(old->queue == new.queue || new.queue != PQ_NONE, |
| 3491 | ("%s: invalid state, queue %d flags %x", |
| 3492 | __func__, new.queue, new.flags)); |
| 3493 | |
| 3494 | if (old->_bits != new._bits && |
| 3495 | !vm_page_pqstate_fcmpset(m, old, new)) |
| 3496 | return (false); |
| 3497 | vm_page_pqbatch_submit(m, new.queue); |
| 3498 | return (true); |
| 3499 | } |
| 3500 | |
| 3501 | /* |
| 3502 | * A generic queue state update function. This handles more cases than the |
no test coverage detected