diff options
| author | Boris Popov <bp@FreeBSD.org> | 2000-09-12 09:49:08 +0000 |
|---|---|---|
| committer | Boris Popov <bp@FreeBSD.org> | 2000-09-12 09:49:08 +0000 |
| commit | 9ff5ce6baf165aeb3cb45dd7dd5a8dc9da4fc9d4 (patch) | |
| tree | fae6f12194eaecdf98cf34bc698708c189f95c30 /sys/vm | |
| parent | 6ce5d87513ba06f1e4f1a7b5bff3d336db96e163 (diff) | |
Notes
Diffstat (limited to 'sys/vm')
| -rw-r--r-- | sys/vm/vm_mmap.c | 9 |
1 files changed, 9 insertions, 0 deletions
diff --git a/sys/vm/vm_mmap.c b/sys/vm/vm_mmap.c index 79b6b72e3618e..43d75a5629227 100644 --- a/sys/vm/vm_mmap.c +++ b/sys/vm/vm_mmap.c @@ -198,6 +198,7 @@ mmap(p, uap) int disablexworkaround; off_t pos; struct vmspace *vms = p->p_vmspace; + vm_object_t obj; addr = (vm_offset_t) uap->addr; size = uap->len; @@ -295,6 +296,14 @@ mmap(p, uap) vp = (struct vnode *) fp->f_data; if (vp->v_type != VREG && vp->v_type != VCHR) return (EINVAL); + if (vp->v_type == VREG) { + /* + * Get the proper underlying object + */ + if (VOP_GETVOBJECT(vp, &obj) != 0) + return (EINVAL); + vp = (struct vnode*)obj->handle; + } /* * XXX hack to handle use of /dev/zero to map anon memory (ala * SunOS). |
