On pageout, in vnode generic pager, for partially dirty page, only
clear dirty bits for completely invalid blocks. Otherwise we might not write out the last chunk that is shorter than 512 bytes, if the file end is not aligned on disk block boundary. This become important after the r324794. PR: 225586 Reported by: tris_vern@hotmail.com Tested by: pho Sponsored by: The FreeBSD Foundation MFC after: 3 days
This commit is contained in:
parent
883cd89b05
commit
938cdc4264
Notes:
svn2git
2020-12-20 02:59:44 +00:00
svn path=/head/; revision=328773
@ -1266,6 +1266,8 @@ vnode_pager_generic_putpages(struct vnode *vp, vm_page_t *ma, int bytecount,
|
||||
maxsize = object->un_pager.vnp.vnp_size - poffset;
|
||||
ncount = btoc(maxsize);
|
||||
if ((pgoff = (int)maxsize & PAGE_MASK) != 0) {
|
||||
pgoff = roundup2(pgoff, DEV_BSIZE);
|
||||
|
||||
/*
|
||||
* If the object is locked and the following
|
||||
* conditions hold, then the page's dirty
|
||||
|
Loading…
Reference in New Issue
Block a user