Check for bogus_page in vnode_pager_generic_getpages_done().

We now assert that a page is busy when updating its validity-tracking
state, but bogus_page is not busied during a getpages operation.

Reported by:	syzkaller
Reviewed by:	alc, kib
Discussed with:	jeff
MFC after:	1 week
Sponsored by:	The FreeBSD Foundation
Differential Revision:	https://reviews.freebsd.org/D22124
This commit is contained in:
Mark Johnston 2019-10-23 18:00:22 +00:00
parent e6f1a58082
commit 2f81c92e55
Notes: svn2git 2020-12-20 02:59:44 +00:00
svn path=/head/; revision=353957

View File

@ -1149,6 +1149,8 @@ vnode_pager_generic_getpages_done(struct buf *bp)
nextoff = tfoff + PAGE_SIZE;
mt = bp->b_pages[i];
if (mt == bogus_page)
continue;
if (nextoff <= object->un_pager.vnp.vnp_size) {
/*