uipc_shm.c (27067774dce3388702a4cf744d7096c6fb71b688) uipc_shm.c (7667839a7ec4354de9984d411c45cbacf9fe8e3b)
1/*-
2 * Copyright (c) 2006, 2011 Robert N. M. Watson
3 * All rights reserved.
4 *
5 * Redistribution and use in source and binary forms, with or without
6 * modification, are permitted provided that the following conditions
7 * are met:
8 * 1. Redistributions of source code must retain the above copyright

--- 441 unchanged lines hidden (view full) ---

450 goto retry;
451 } else if (vm_pager_has_page(object, idx, NULL, NULL)) {
452 m = vm_page_alloc(object, idx, VM_ALLOC_NORMAL);
453 if (m == NULL) {
454 VM_OBJECT_WUNLOCK(object);
455 VM_WAIT;
456 VM_OBJECT_WLOCK(object);
457 goto retry;
1/*-
2 * Copyright (c) 2006, 2011 Robert N. M. Watson
3 * All rights reserved.
4 *
5 * Redistribution and use in source and binary forms, with or without
6 * modification, are permitted provided that the following conditions
7 * are met:
8 * 1. Redistributions of source code must retain the above copyright

--- 441 unchanged lines hidden (view full) ---

450 goto retry;
451 } else if (vm_pager_has_page(object, idx, NULL, NULL)) {
452 m = vm_page_alloc(object, idx, VM_ALLOC_NORMAL);
453 if (m == NULL) {
454 VM_OBJECT_WUNLOCK(object);
455 VM_WAIT;
456 VM_OBJECT_WLOCK(object);
457 goto retry;
458 } else if (m->valid != VM_PAGE_BITS_ALL)
459 rv = vm_pager_get_pages(object, &m, 1,
460 NULL, NULL);
461 else
462 /* A cached page was reactivated. */
463 rv = VM_PAGER_OK;
458 }
459 rv = vm_pager_get_pages(object, &m, 1, NULL,
460 NULL);
464 vm_page_lock(m);
465 if (rv == VM_PAGER_OK) {
466 vm_page_deactivate(m);
467 vm_page_unlock(m);
468 vm_page_xunbusy(m);
469 } else {
470 vm_page_free(m);
471 vm_page_unlock(m);

--- 636 unchanged lines hidden ---
461 vm_page_lock(m);
462 if (rv == VM_PAGER_OK) {
463 vm_page_deactivate(m);
464 vm_page_unlock(m);
465 vm_page_xunbusy(m);
466 } else {
467 vm_page_free(m);
468 vm_page_unlock(m);

--- 636 unchanged lines hidden ---