Deleted Added
full compact
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 ---