Lines 3618-3623
vm_page_unwire(vm_page_t m, uint8_t queue)
Link Here
|
3618 |
if (!unwired || (m->oflags & VPO_UNMANAGED) != 0 || m->object == NULL) |
3618 |
if (!unwired || (m->oflags & VPO_UNMANAGED) != 0 || m->object == NULL) |
3619 |
return (unwired); |
3619 |
return (unwired); |
3620 |
|
3620 |
|
|
|
3621 |
/* |
3622 |
* A lazy dequeue might already be in progress. Wait for it to finish |
3623 |
* before proceeding. |
3624 |
* |
3625 |
* Ensure that we load the queue index after the state flags, to |
3626 |
* synchronize with vm_page_dequeue_complete(). |
3627 |
*/ |
3628 |
if (__predict_false((m->aflags & PGA_DEQUEUE) != 0)) |
3629 |
vm_page_dequeue(m); |
3630 |
atomic_thread_fence_acq(); |
3631 |
|
3621 |
if (vm_page_queue(m) == queue) { |
3632 |
if (vm_page_queue(m) == queue) { |
3622 |
if (queue == PQ_ACTIVE) |
3633 |
if (queue == PQ_ACTIVE) |
3623 |
vm_page_reference(m); |
3634 |
vm_page_reference(m); |