On Thu, Nov 22, 2012 at 12:46:54PM +0100, Manuel Bouyer wrote: > Index: uvm/uvm_vnode.c > =================================================================== > RCS file: /cvsroot/src/sys/uvm/uvm_vnode.c,v > retrieving revision 1.97.8.1 > diff -u -p -u -r1.97.8.1 uvm_vnode.c > --- uvm/uvm_vnode.c 11 Jun 2012 21:25:02 -0000 1.97.8.1 > +++ uvm/uvm_vnode.c 22 Nov 2012 11:31:25 -0000 > @@ -351,7 +351,7 @@ uvm_vnp_setsize(struct vnode *vp, voff_t > KASSERT(oldsize != VSIZENOTSET || pgend > oldsize); > > if (oldsize > pgend) { > - (void) uvn_put(uobj, pgend, 0, PGO_FREE | PGO_SYNCIO); > + (void) uvn_put(uobj, pgend, oldsize, PGO_FREE | PGO_SYNCIO); > mutex_enter(uobj->vmobjlock); > } > vp->v_size = vp->v_writesize = newsize;
I found that VOP_PUTPAGES wants page-aligned boundaries, so this needs to be changed to: + (void) uvn_put(uobj, pgend, round_page(oldsize), + PGO_FREE | PGO_SYNCIO); -- Manuel Bouyer <bou...@antioche.eu.org> NetBSD: 26 ans d'experience feront toujours la difference --