vnode_pager.c (37562) | vnode_pager.c (38517) |
---|---|
1/* 2 * Copyright (c) 1990 University of Utah. 3 * Copyright (c) 1991 The Regents of the University of California. 4 * All rights reserved. 5 * Copyright (c) 1993, 1994 John S. Dyson 6 * Copyright (c) 1995, David Greenman 7 * 8 * This code is derived from software contributed to Berkeley by --- 24 unchanged lines hidden (view full) --- 33 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS 34 * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 35 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 36 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY 37 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 38 * SUCH DAMAGE. 39 * 40 * from: @(#)vnode_pager.c 7.5 (Berkeley) 4/20/91 | 1/* 2 * Copyright (c) 1990 University of Utah. 3 * Copyright (c) 1991 The Regents of the University of California. 4 * All rights reserved. 5 * Copyright (c) 1993, 1994 John S. Dyson 6 * Copyright (c) 1995, David Greenman 7 * 8 * This code is derived from software contributed to Berkeley by --- 24 unchanged lines hidden (view full) --- 33 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS 34 * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 35 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 36 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY 37 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 38 * SUCH DAMAGE. 39 * 40 * from: @(#)vnode_pager.c 7.5 (Berkeley) 4/20/91 |
41 * $Id: vnode_pager.c,v 1.93 1998/07/11 07:46:16 bde Exp $ | 41 * $Id: vnode_pager.c,v 1.94 1998/07/11 11:30:46 bde Exp $ |
42 */ 43 44/* 45 * Page to/from files (vnodes). 46 */ 47 48/* 49 * TODO: --- 387 unchanged lines hidden (view full) --- 437 vm_page_set_validclean(m, (i * bsize) & PAGE_MASK, bsize); 438 } else { 439 vm_page_set_validclean(m, (i * bsize) & PAGE_MASK, bsize); 440 bzero((caddr_t) kva + i * bsize, bsize); 441 } 442 } 443 vm_pager_unmap_page(kva); 444 pmap_clear_modify(VM_PAGE_TO_PHYS(m)); | 42 */ 43 44/* 45 * Page to/from files (vnodes). 46 */ 47 48/* 49 * TODO: --- 387 unchanged lines hidden (view full) --- 437 vm_page_set_validclean(m, (i * bsize) & PAGE_MASK, bsize); 438 } else { 439 vm_page_set_validclean(m, (i * bsize) & PAGE_MASK, bsize); 440 bzero((caddr_t) kva + i * bsize, bsize); 441 } 442 } 443 vm_pager_unmap_page(kva); 444 pmap_clear_modify(VM_PAGE_TO_PHYS(m)); |
445 m->flags &= ~PG_ZERO; | 445 PAGE_CLEAR_FLAG(m, PG_ZERO); |
446 if (error) { 447 return VM_PAGER_ERROR; 448 } 449 return VM_PAGER_OK; 450 451} 452 453 --- 47 unchanged lines hidden (view full) --- 501 error = EINVAL; 502 else if (count != PAGE_SIZE) 503 bzero((caddr_t) kva + count, PAGE_SIZE - count); 504 } 505 vm_pager_unmap_page(kva); 506 } 507 pmap_clear_modify(VM_PAGE_TO_PHYS(m)); 508 m->dirty = 0; | 446 if (error) { 447 return VM_PAGER_ERROR; 448 } 449 return VM_PAGER_OK; 450 451} 452 453 --- 47 unchanged lines hidden (view full) --- 501 error = EINVAL; 502 else if (count != PAGE_SIZE) 503 bzero((caddr_t) kva + count, PAGE_SIZE - count); 504 } 505 vm_pager_unmap_page(kva); 506 } 507 pmap_clear_modify(VM_PAGE_TO_PHYS(m)); 508 m->dirty = 0; |
509 m->flags &= ~PG_ZERO; | 509 PAGE_CLEAR_FLAG(m, PG_ZERO); |
510 return error ? VM_PAGER_ERROR : VM_PAGER_OK; 511} 512 513/* 514 * generic vnode pager input routine 515 */ 516 517/* --- 250 unchanged lines hidden (view full) --- 768 mt->valid = VM_PAGE_BITS_ALL; 769 mt->dirty = 0; 770 pmap_clear_modify(VM_PAGE_TO_PHYS(mt)); 771 } else { 772 int nvalid = ((size + DEV_BSIZE - 1) - tfoff) & ~(DEV_BSIZE - 1); 773 vm_page_set_validclean(mt, 0, nvalid); 774 } 775 | 510 return error ? VM_PAGER_ERROR : VM_PAGER_OK; 511} 512 513/* 514 * generic vnode pager input routine 515 */ 516 517/* --- 250 unchanged lines hidden (view full) --- 768 mt->valid = VM_PAGE_BITS_ALL; 769 mt->dirty = 0; 770 pmap_clear_modify(VM_PAGE_TO_PHYS(mt)); 771 } else { 772 int nvalid = ((size + DEV_BSIZE - 1) - tfoff) & ~(DEV_BSIZE - 1); 773 vm_page_set_validclean(mt, 0, nvalid); 774 } 775 |
776 mt->flags &= ~PG_ZERO; | 776 PAGE_CLEAR_FLAG(mt, PG_ZERO); |
777 if (i != reqpage) { 778 779 /* 780 * whether or not to leave the page activated is up in 781 * the air, but we should put the page on a page queue 782 * somewhere. (it already is in the object). Result: 783 * It appears that emperical results show that 784 * deactivating pages is best. --- 158 unchanged lines hidden --- | 777 if (i != reqpage) { 778 779 /* 780 * whether or not to leave the page activated is up in 781 * the air, but we should put the page on a page queue 782 * somewhere. (it already is in the object). Result: 783 * It appears that emperical results show that 784 * deactivating pages is best. --- 158 unchanged lines hidden --- |