Date: Sat, 25 Aug 2007 19:14:30 +0000 (UTC) From: Alan Cox <alc@FreeBSD.org> To: src-committers@FreeBSD.org, cvs-src@FreeBSD.org, cvs-all@FreeBSD.org Subject: cvs commit: src/sys/vm vnode_pager.c Message-ID: <200708251914.l7PJEUTZ097136@repoman.freebsd.org>
next in thread | raw e-mail | index | archive | help
alc 2007-08-25 19:14:30 UTC FreeBSD src repository Modified files: (Branch: RELENG_6) sys/vm vnode_pager.c Log: MFC revision 1.231 Change vnode_pager_addr() such that on returning it distinguishes between an error returned by VOP_BMAP() and a hole in the file. Change the callers to vnode_pager_addr() such that they return VM_PAGER_ERROR when VOP_BMAP fails instead of a zero-filled page. MFC revision 1.232 Long ago, revision 1.22 of vm/vm_pager.h introduced a bug. Specifically, it introduced a check after the call to file system's get pages method that assumes that the get pages method does not change the array of pages that is passed to it. In the case of vnode_pager_generic_getpages(), this assumption has been incorrect. The contents of the array of pages may be shifted by vnode_pager_generic_getpages(). Likely, the problem has been hidden by vnode_pager_haspage() limiting the set of pages that are passed to vnode_pager_generic_getpages() such that a shift never occurs. The fix implemented herein is to adjust the pointer to the array of pages rather than shifting the pages within the array. Revision Changes Path 1.221.2.8 +25 -22 src/sys/vm/vnode_pager.c
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200708251914.l7PJEUTZ097136>