vfs_bio.c (26290) | vfs_bio.c (26409) |
---|---|
1/* 2 * Copyright (c) 1994 John S. Dyson 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 --- 4 unchanged lines hidden (view full) --- 13 * documentation and/or other materials provided with the distribution. 14 * 3. Absolutely no warranty of function or purpose is made by the author 15 * John S. Dyson. 16 * 4. This work was done expressly for inclusion into FreeBSD. Other use 17 * is allowed if this notation is included. 18 * 5. Modifications may be freely made to this file if the above conditions 19 * are met. 20 * | 1/* 2 * Copyright (c) 1994 John S. Dyson 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 --- 4 unchanged lines hidden (view full) --- 13 * documentation and/or other materials provided with the distribution. 14 * 3. Absolutely no warranty of function or purpose is made by the author 15 * John S. Dyson. 16 * 4. This work was done expressly for inclusion into FreeBSD. Other use 17 * is allowed if this notation is included. 18 * 5. Modifications may be freely made to this file if the above conditions 19 * are met. 20 * |
21 * $Id: vfs_bio.c,v 1.116 1997/05/19 14:36:36 dfr Exp $ | 21 * $Id: vfs_bio.c,v 1.117 1997/05/30 22:25:35 dfr Exp $ |
22 */ 23 24/* 25 * this file contains a new buffer I/O scheme implementing a coherent 26 * VM object and buffer cache scheme. Pains have been taken to make 27 * sure that the performance degradation associated with schemes such 28 * as this is not realized. 29 * --- 477 unchanged lines hidden (view full) --- 507 * but the VM object is kept around. The B_NOCACHE flag is used to 508 * invalidate the pages in the VM object. 509 * 510 * If the buffer is a partially filled NFS buffer, keep it 511 * since invalidating it now will lose informatio. The valid 512 * flags in the vm_pages have only DEV_BSIZE resolution but 513 * the b_validoff, b_validend fields have byte resolution. 514 * This can avoid unnecessary re-reads of the buffer. | 22 */ 23 24/* 25 * this file contains a new buffer I/O scheme implementing a coherent 26 * VM object and buffer cache scheme. Pains have been taken to make 27 * sure that the performance degradation associated with schemes such 28 * as this is not realized. 29 * --- 477 unchanged lines hidden (view full) --- 507 * but the VM object is kept around. The B_NOCACHE flag is used to 508 * invalidate the pages in the VM object. 509 * 510 * If the buffer is a partially filled NFS buffer, keep it 511 * since invalidating it now will lose informatio. The valid 512 * flags in the vm_pages have only DEV_BSIZE resolution but 513 * the b_validoff, b_validend fields have byte resolution. 514 * This can avoid unnecessary re-reads of the buffer. |
515 * XXX this seems to cause performance problems. |
|
515 */ 516 if ((bp->b_flags & B_VMIO) | 516 */ 517 if ((bp->b_flags & B_VMIO) |
518#ifdef notdef |
|
517 && (bp->b_vp->v_tag != VT_NFS 518 || (bp->b_flags & (B_NOCACHE | B_INVAL | B_ERROR)) 519 || bp->b_validend == 0 520 || (bp->b_validoff == 0 | 519 && (bp->b_vp->v_tag != VT_NFS 520 || (bp->b_flags & (B_NOCACHE | B_INVAL | B_ERROR)) 521 || bp->b_validend == 0 522 || (bp->b_validoff == 0 |
521 && bp->b_validend == bp->b_bufsize))) { | 523 && bp->b_validend == bp->b_bufsize)) 524#endif 525 ) { |
522 vm_ooffset_t foff; 523 vm_object_t obj; 524 int i, resid; 525 vm_page_t m; 526 struct vnode *vp; 527 int iototal = bp->b_bufsize; 528 529 vp = bp->b_vp; --- 1515 unchanged lines hidden --- | 526 vm_ooffset_t foff; 527 vm_object_t obj; 528 int i, resid; 529 vm_page_t m; 530 struct vnode *vp; 531 int iototal = bp->b_bufsize; 532 533 vp = bp->b_vp; --- 1515 unchanged lines hidden --- |