* vm_page_dequeue_deferred: [ internal use only ] * * Request removal of the given page from its current page * queue. Physical removal from the queue may be deferred * indefinitely. */
| 3664 | * indefinitely. |
| 3665 | */ |
| 3666 | void |
| 3667 | vm_page_dequeue_deferred(vm_page_t m) |
| 3668 | { |
| 3669 | vm_page_astate_t new, old; |
| 3670 | |
| 3671 | old = vm_page_astate_load(m); |
| 3672 | do { |
| 3673 | if (old.queue == PQ_NONE) { |
| 3674 | KASSERT((old.flags & PGA_QUEUE_STATE_MASK) == 0, |
| 3675 | ("%s: page %p has unexpected queue state", |
| 3676 | __func__, m)); |
| 3677 | break; |
| 3678 | } |
| 3679 | new = old; |
| 3680 | new.flags |= PGA_DEQUEUE; |
| 3681 | } while (!vm_page_pqstate_commit_request(m, &old, new)); |
| 3682 | } |
| 3683 | |
| 3684 | /* |
| 3685 | * vm_page_dequeue: |
no test coverage detected