summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorglebius <glebius@FreeBSD.org>2014-11-19 15:17:19 +0000
committerglebius <glebius@FreeBSD.org>2014-11-19 15:17:19 +0000
commitc73b720d6ae9fb1dec0962f638269d83204d8670 (patch)
treeeed50bb8f4baac93ae5188a4623598828d8026f7
parent4ca480b4155096771966bed9b5f463d372758cfe (diff)
downloadFreeBSD-src-c73b720d6ae9fb1dec0962f638269d83204d8670.zip
FreeBSD-src-c73b720d6ae9fb1dec0962f638269d83204d8670.tar.gz
In vnode_pager_generic_getpages() vp->v_mount is dereferenced in the
beginning, thus can't be NULL. Sponsored by: Nginx, Inc.
-rw-r--r--sys/vm/vnode_pager.c6
1 files changed, 2 insertions, 4 deletions
diff --git a/sys/vm/vnode_pager.c b/sys/vm/vnode_pager.c
index 5936d38..004d745 100644
--- a/sys/vm/vnode_pager.c
+++ b/sys/vm/vnode_pager.c
@@ -714,7 +714,6 @@ vnode_pager_generic_getpages(struct vnode *vp, vm_page_t *m, int bytecount,
int runpg;
int runend;
struct buf *bp;
- struct mount *mp;
int count;
int error;
@@ -906,8 +905,7 @@ vnode_pager_generic_getpages(struct vnode *vp, vm_page_t *m, int bytecount,
* and map the pages to be read into the kva, if the filesystem
* requires mapped buffers.
*/
- mp = vp->v_mount;
- if (mp != NULL && (mp->mnt_kern_flag & MNTK_UNMAPPED_BUFS) != 0 &&
+ if ((vp->v_mount->mnt_kern_flag & MNTK_UNMAPPED_BUFS) != 0 &&
unmapped_buf_allowed) {
bp->b_data = unmapped_buf;
bp->b_kvabase = unmapped_buf;
@@ -955,7 +953,7 @@ vnode_pager_generic_getpages(struct vnode *vp, vm_page_t *m, int bytecount,
}
if ((bp->b_flags & B_UNMAPPED) == 0)
pmap_qremove(kva, count);
- if (mp != NULL && (mp->mnt_kern_flag & MNTK_UNMAPPED_BUFS) != 0) {
+ if ((vp->v_mount->mnt_kern_flag & MNTK_UNMAPPED_BUFS) != 0) {
bp->b_data = (caddr_t)kva;
bp->b_kvabase = (caddr_t)kva;
bp->b_flags &= ~B_UNMAPPED;
OpenPOWER on IntegriCloud