Date: Wed, 17 Jul 2019 19:39:09 +0000 (UTC) From: Alan Somers <asomers@FreeBSD.org> To: src-committers@freebsd.org, svn-src-projects@freebsd.org Subject: svn commit: r350092 - projects/fuse2/sys/vm Message-ID: <201907171939.x6HJd9qA001398@repo.freebsd.org>
next in thread | raw e-mail | index | archive | help
Author: asomers Date: Wed Jul 17 19:39:08 2019 New Revision: 350092 URL: https://svnweb.freebsd.org/changeset/base/350092 Log: Revert r346608 That change was intended to be cosmetic, but it inadvertenly caused vnode_pager_setsize to discard cached indirect blocks and extended attributes on UFS during truncation. The reason is because those blocks have negative LBNs, which get sign-cast to positive VM indexes. Reported by: kib Sponsored by: The FreeBSD Foundation Modified: projects/fuse2/sys/vm/vnode_pager.c Modified: projects/fuse2/sys/vm/vnode_pager.c ============================================================================== --- projects/fuse2/sys/vm/vnode_pager.c Wed Jul 17 19:29:55 2019 (r350091) +++ projects/fuse2/sys/vm/vnode_pager.c Wed Jul 17 19:39:08 2019 (r350092) @@ -464,7 +464,8 @@ vnode_pager_setsize(struct vnode *vp, vm_ooffset_t nsi * File has shrunk. Toss any cached pages beyond the new EOF. */ if (nobjsize < object->size) - vm_object_page_remove(object, nobjsize, 0, 0); + vm_object_page_remove(object, nobjsize, object->size, + 0); /* * this gets rid of garbage at the end of a page that is now * only partially backed by the vnode.
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201907171939.x6HJd9qA001398>