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 --- |