Fix other architectures and ZFS.

Sponsored by:	EMC / Isilon storage division
This commit is contained in:
attilio 2013-02-21 15:02:36 +00:00
parent b2afca4987
commit 066bbc97b6
38 changed files with 208 additions and 43 deletions

View File

@ -70,6 +70,7 @@ __FBSDID("$FreeBSD$");
#include <sys/mutex.h> #include <sys/mutex.h>
#include <sys/pcpu.h> #include <sys/pcpu.h>
#include <sys/ptrace.h> #include <sys/ptrace.h>
#include <sys/rwlock.h>
#include <sys/signalvar.h> #include <sys/signalvar.h>
#include <sys/syscallsubr.h> #include <sys/syscallsubr.h>
#include <sys/sysctl.h> #include <sys/sysctl.h>

View File

@ -61,6 +61,7 @@ __FBSDID("$FreeBSD$");
#include <sys/pcpu.h> #include <sys/pcpu.h>
#include <sys/proc.h> #include <sys/proc.h>
#include <sys/ptrace.h> #include <sys/ptrace.h>
#include <sys/rwlock.h>
#include <sys/cons.h> #include <sys/cons.h>
#include <sys/bio.h> #include <sys/bio.h>
#include <sys/bus.h> #include <sys/bus.h>

View File

@ -53,6 +53,7 @@ __FBSDID("$FreeBSD$");
#include <sys/pcpu.h> #include <sys/pcpu.h>
#include <sys/proc.h> #include <sys/proc.h>
#include <sys/ptrace.h> #include <sys/ptrace.h>
#include <sys/rwlock.h>
#include <sys/cons.h> #include <sys/cons.h>
#include <sys/bio.h> #include <sys/bio.h>
#include <sys/bus.h> #include <sys/bus.h>

View File

@ -63,6 +63,7 @@ __FBSDID("$FreeBSD$");
#include <sys/pcpu.h> #include <sys/pcpu.h>
#include <sys/proc.h> #include <sys/proc.h>
#include <sys/ptrace.h> #include <sys/ptrace.h>
#include <sys/rwlock.h>
#include <sys/cons.h> #include <sys/cons.h>
#include <sys/bio.h> #include <sys/bio.h>
#include <sys/bus.h> #include <sys/bus.h>

View File

@ -66,6 +66,7 @@ __FBSDID("$FreeBSD$");
#include <sys/pcpu.h> #include <sys/pcpu.h>
#include <sys/proc.h> #include <sys/proc.h>
#include <sys/ptrace.h> #include <sys/ptrace.h>
#include <sys/rwlock.h>
#include <sys/cons.h> #include <sys/cons.h>
#include <sys/bio.h> #include <sys/bio.h>
#include <sys/bus.h> #include <sys/bus.h>

View File

@ -63,6 +63,7 @@ __FBSDID("$FreeBSD$");
#include <sys/pcpu.h> #include <sys/pcpu.h>
#include <sys/proc.h> #include <sys/proc.h>
#include <sys/ptrace.h> #include <sys/ptrace.h>
#include <sys/rwlock.h>
#include <sys/cons.h> #include <sys/cons.h>
#include <sys/bio.h> #include <sys/bio.h>
#include <sys/bus.h> #include <sys/bus.h>

View File

@ -63,6 +63,7 @@ __FBSDID("$FreeBSD$");
#include <sys/pcpu.h> #include <sys/pcpu.h>
#include <sys/proc.h> #include <sys/proc.h>
#include <sys/ptrace.h> #include <sys/ptrace.h>
#include <sys/rwlock.h>
#include <sys/cons.h> #include <sys/cons.h>
#include <sys/bio.h> #include <sys/bio.h>
#include <sys/bus.h> #include <sys/bus.h>

View File

@ -63,6 +63,7 @@ __FBSDID("$FreeBSD$");
#include <sys/pcpu.h> #include <sys/pcpu.h>
#include <sys/proc.h> #include <sys/proc.h>
#include <sys/ptrace.h> #include <sys/ptrace.h>
#include <sys/rwlock.h>
#include <sys/cons.h> #include <sys/cons.h>
#include <sys/bio.h> #include <sys/bio.h>
#include <sys/bus.h> #include <sys/bus.h>

View File

@ -63,6 +63,7 @@ __FBSDID("$FreeBSD$");
#include <sys/pcpu.h> #include <sys/pcpu.h>
#include <sys/proc.h> #include <sys/proc.h>
#include <sys/ptrace.h> #include <sys/ptrace.h>
#include <sys/rwlock.h>
#include <sys/cons.h> #include <sys/cons.h>
#include <sys/bio.h> #include <sys/bio.h>
#include <sys/bus.h> #include <sys/bus.h>

View File

@ -65,6 +65,7 @@ __FBSDID("$FreeBSD$");
#include <sys/pcpu.h> #include <sys/pcpu.h>
#include <sys/proc.h> #include <sys/proc.h>
#include <sys/ptrace.h> #include <sys/ptrace.h>
#include <sys/rwlock.h>
#include <sys/cons.h> #include <sys/cons.h>
#include <sys/bio.h> #include <sys/bio.h>
#include <sys/bus.h> #include <sys/bus.h>

View File

@ -0,0 +1,84 @@
/*-
* Copyright (c) 2013 EMC Corp.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
* are met:
* 1. Redistributions of source code must retain the above copyright
* notice, this list of conditions and the following disclaimer.
* 2. Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in the
* documentation and/or other materials provided with the distribution.
*
* THIS SOFTWARE IS PROVIDED BY THE AUTHORS AND CONTRIBUTORS ``AS IS'' AND
* ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
* ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHORS OR CONTRIBUTORS BE LIABLE
* FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
* DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
* OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
* HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
* SUCH DAMAGE.
*/
#include <sys/cdefs.h>
#include <sys/param.h>
#include <sys/lock.h>
#include <sys/freebsd_rwlock.h>
#include <vm/vm.h>
#include <vm/vm_param.h>
#include <vm/vm_object.h>
#include <vm/vm_page.h>
#include <vm/vm_pager.h>
int
vm_pagerret_bad(void)
{
return (VM_PAGER_BAD);
}
int
vm_pagerret_error(void)
{
return (VM_PAGER_ERROR);
}
int
vm_pagerret_ok(void)
{
return (VM_PAGER_OK);
}
void
zfs_vmobject_assert_wlocked(vm_object_t object)
{
/*
* This is not ideal because FILE/LINE used by assertions will not
* be too helpful, but it must be an hard function for
* compatibility reasons.
*/
VM_OBJECT_LOCK_ASSERT(object, RA_WLOCKED);
}
void
zfs_vmobject_wlock(vm_object_t object)
{
VM_OBJECT_WLOCK(object);
}
void
zfs_vmobject_wunlock(vm_object_t object)
{
VM_OBJECT_WUNLOCK(object);
}

View File

@ -0,0 +1,34 @@
/*-
* Copyright (c) 2013 EMC Corp.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
* are met:
* 1. Redistributions of source code must retain the above copyright
* notice, this list of conditions and the following disclaimer.
* 2. Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in the
* documentation and/or other materials provided with the distribution.
*
* THIS SOFTWARE IS PROVIDED BY THE AUTHORS AND CONTRIBUTORS ``AS IS'' AND
* ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
* ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHORS OR CONTRIBUTORS BE LIABLE
* FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
* DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
* OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
* HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
* SUCH DAMAGE.
*
* $FreeBSD$
*/
#ifndef _OPENSOLARIS_SYS_FREEBSD_RWLOCK_H_
#define _OPENSOLARIS_SYS_FREEBSD_RWLOCK_H_
#include_next <sys/rwlock.h>
#endif

View File

@ -0,0 +1,44 @@
/*-
* Copyright (c) 2013 EMC Corp.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
* are met:
* 1. Redistributions of source code must retain the above copyright
* notice, this list of conditions and the following disclaimer.
* 2. Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in the
* documentation and/or other materials provided with the distribution.
*
* THIS SOFTWARE IS PROVIDED BY THE AUTHORS AND CONTRIBUTORS ``AS IS'' AND
* ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
* ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHORS OR CONTRIBUTORS BE LIABLE
* FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
* DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
* OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
* HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
* SUCH DAMAGE.
*
* $FreeBSD$
*/
#ifndef _OPENSOLARIS_SYS_VM_H_
#define _OPENSOLARIS_SYS_VM_H_
#ifdef _KERNEL
int vm_pagerret_bad(void);
int vm_pagerret_error(void);
int vm_pagerret_ok(void);
void zfs_vmobject_assert_wlocked(vm_object_t object);
void zfs_vmobject_wlock(vm_object_t object);
void zfs_vmobject_wunlock(vm_object_t object);
#endif /* _KERNEL */
#endif /* _OPENSOLARIS_SYS_VM_H_ */

View File

@ -94,7 +94,6 @@ extern "C" {
#include <vm/vm.h> #include <vm/vm.h>
#include <vm/vm_page.h> #include <vm/vm_page.h>
#include <vm/vm_object.h> #include <vm/vm_object.h>
#include <vm/vm_pager.h>
#include <vm/vm_kern.h> #include <vm/vm_kern.h>
#include <vm/vm_map.h> #include <vm/vm_map.h>
/* There is clash. vm_map.h defines the two below and vdev_cache.c use them. */ /* There is clash. vm_map.h defines the two below and vdev_cache.c use them. */

View File

@ -33,6 +33,7 @@
#include <sys/sysmacros.h> #include <sys/sysmacros.h>
#include <sys/resource.h> #include <sys/resource.h>
#include <sys/vfs.h> #include <sys/vfs.h>
#include <sys/vm.h>
#include <sys/vnode.h> #include <sys/vnode.h>
#include <sys/file.h> #include <sys/file.h>
#include <sys/stat.h> #include <sys/stat.h>
@ -329,7 +330,7 @@ page_busy(vnode_t *vp, int64_t start, int64_t off, int64_t nbytes)
vm_page_t pp; vm_page_t pp;
obj = vp->v_object; obj = vp->v_object;
VM_OBJECT_LOCK_ASSERT(obj, MA_OWNED); zfs_vmobject_assert_wlocked(obj);
for (;;) { for (;;) {
if ((pp = vm_page_lookup(obj, OFF_TO_IDX(start))) != NULL && if ((pp = vm_page_lookup(obj, OFF_TO_IDX(start))) != NULL &&
@ -377,7 +378,7 @@ page_hold(vnode_t *vp, int64_t start)
vm_page_t pp; vm_page_t pp;
obj = vp->v_object; obj = vp->v_object;
VM_OBJECT_LOCK_ASSERT(obj, MA_OWNED); zfs_vmobject_assert_wlocked(obj);
for (;;) { for (;;) {
if ((pp = vm_page_lookup(obj, OFF_TO_IDX(start))) != NULL && if ((pp = vm_page_lookup(obj, OFF_TO_IDX(start))) != NULL &&
@ -450,7 +451,7 @@ update_pages(vnode_t *vp, int64_t start, int len, objset_t *os, uint64_t oid,
ASSERT(obj != NULL); ASSERT(obj != NULL);
off = start & PAGEOFFSET; off = start & PAGEOFFSET;
VM_OBJECT_WLOCK(obj); zfs_vmobject_wlock(obj);
for (start &= PAGEMASK; len > 0; start += PAGESIZE) { for (start &= PAGEMASK; len > 0; start += PAGESIZE) {
vm_page_t pp; vm_page_t pp;
int nbytes = imin(PAGESIZE - off, len); int nbytes = imin(PAGESIZE - off, len);
@ -467,23 +468,23 @@ update_pages(vnode_t *vp, int64_t start, int len, objset_t *os, uint64_t oid,
("zfs update_pages: unbusy page in putpages case")); ("zfs update_pages: unbusy page in putpages case"));
KASSERT(!pmap_page_is_write_mapped(pp), KASSERT(!pmap_page_is_write_mapped(pp),
("zfs update_pages: writable page in putpages case")); ("zfs update_pages: writable page in putpages case"));
VM_OBJECT_WUNLOCK(obj); zfs_vmobject_wunlock(obj);
va = zfs_map_page(pp, &sf); va = zfs_map_page(pp, &sf);
(void) dmu_write(os, oid, start, nbytes, va, tx); (void) dmu_write(os, oid, start, nbytes, va, tx);
zfs_unmap_page(sf); zfs_unmap_page(sf);
VM_OBJECT_WLOCK(obj); zfs_vmobject_wlock(obj);
vm_page_undirty(pp); vm_page_undirty(pp);
} else if ((pp = page_busy(vp, start, off, nbytes)) != NULL) { } else if ((pp = page_busy(vp, start, off, nbytes)) != NULL) {
VM_OBJECT_WUNLOCK(obj); zfs_vmobject_wunlock(obj);
va = zfs_map_page(pp, &sf); va = zfs_map_page(pp, &sf);
(void) dmu_read(os, oid, start+off, nbytes, (void) dmu_read(os, oid, start+off, nbytes,
va+off, DMU_READ_PREFETCH);; va+off, DMU_READ_PREFETCH);;
zfs_unmap_page(sf); zfs_unmap_page(sf);
VM_OBJECT_WLOCK(obj); zfs_vmobject_wlock(obj);
page_unbusy(pp); page_unbusy(pp);
} }
len -= nbytes; len -= nbytes;
@ -491,7 +492,7 @@ update_pages(vnode_t *vp, int64_t start, int len, objset_t *os, uint64_t oid,
} }
if (segflg != UIO_NOCOPY) if (segflg != UIO_NOCOPY)
vm_object_pip_wakeupn(obj, 0); vm_object_pip_wakeupn(obj, 0);
VM_OBJECT_WUNLOCK(obj); zfs_vmobject_wunlock(obj);
} }
/* /*
@ -523,7 +524,7 @@ mappedread_sf(vnode_t *vp, int nbytes, uio_t *uio)
ASSERT(obj != NULL); ASSERT(obj != NULL);
ASSERT((uio->uio_loffset & PAGEOFFSET) == 0); ASSERT((uio->uio_loffset & PAGEOFFSET) == 0);
VM_OBJECT_WLOCK(obj); zfs_vmobject_wlock(obj);
for (start = uio->uio_loffset; len > 0; start += PAGESIZE) { for (start = uio->uio_loffset; len > 0; start += PAGESIZE) {
int bytes = MIN(PAGESIZE, len); int bytes = MIN(PAGESIZE, len);
@ -531,14 +532,14 @@ mappedread_sf(vnode_t *vp, int nbytes, uio_t *uio)
VM_ALLOC_NORMAL | VM_ALLOC_RETRY | VM_ALLOC_IGN_SBUSY); VM_ALLOC_NORMAL | VM_ALLOC_RETRY | VM_ALLOC_IGN_SBUSY);
if (pp->valid == 0) { if (pp->valid == 0) {
vm_page_io_start(pp); vm_page_io_start(pp);
VM_OBJECT_WUNLOCK(obj); zfs_vmobject_wunlock(obj);
va = zfs_map_page(pp, &sf); va = zfs_map_page(pp, &sf);
error = dmu_read(os, zp->z_id, start, bytes, va, error = dmu_read(os, zp->z_id, start, bytes, va,
DMU_READ_PREFETCH); DMU_READ_PREFETCH);
if (bytes != PAGESIZE && error == 0) if (bytes != PAGESIZE && error == 0)
bzero(va + bytes, PAGESIZE - bytes); bzero(va + bytes, PAGESIZE - bytes);
zfs_unmap_page(sf); zfs_unmap_page(sf);
VM_OBJECT_WLOCK(obj); zfs_vmobject_wlock(obj);
vm_page_io_finish(pp); vm_page_io_finish(pp);
vm_page_lock(pp); vm_page_lock(pp);
if (error) { if (error) {
@ -555,7 +556,7 @@ mappedread_sf(vnode_t *vp, int nbytes, uio_t *uio)
uio->uio_offset += bytes; uio->uio_offset += bytes;
len -= bytes; len -= bytes;
} }
VM_OBJECT_WUNLOCK(obj); zfs_vmobject_wunlock(obj);
return (error); return (error);
} }
@ -587,7 +588,7 @@ mappedread(vnode_t *vp, int nbytes, uio_t *uio)
start = uio->uio_loffset; start = uio->uio_loffset;
off = start & PAGEOFFSET; off = start & PAGEOFFSET;
VM_OBJECT_WLOCK(obj); zfs_vmobject_wlock(obj);
for (start &= PAGEMASK; len > 0; start += PAGESIZE) { for (start &= PAGEMASK; len > 0; start += PAGESIZE) {
vm_page_t pp; vm_page_t pp;
uint64_t bytes = MIN(PAGESIZE - off, len); uint64_t bytes = MIN(PAGESIZE - off, len);
@ -596,23 +597,23 @@ mappedread(vnode_t *vp, int nbytes, uio_t *uio)
struct sf_buf *sf; struct sf_buf *sf;
caddr_t va; caddr_t va;
VM_OBJECT_WUNLOCK(obj); zfs_vmobject_wunlock(obj);
va = zfs_map_page(pp, &sf); va = zfs_map_page(pp, &sf);
error = uiomove(va + off, bytes, UIO_READ, uio); error = uiomove(va + off, bytes, UIO_READ, uio);
zfs_unmap_page(sf); zfs_unmap_page(sf);
VM_OBJECT_WLOCK(obj); zfs_vmobject_wlock(obj);
page_unhold(pp); page_unhold(pp);
} else { } else {
VM_OBJECT_WUNLOCK(obj); zfs_vmobject_wunlock(obj);
error = dmu_read_uio(os, zp->z_id, uio, bytes); error = dmu_read_uio(os, zp->z_id, uio, bytes);
VM_OBJECT_WLOCK(obj); zfs_vmobject_wlock(obj);
} }
len -= bytes; len -= bytes;
off = 0; off = 0;
if (error) if (error)
break; break;
} }
VM_OBJECT_WUNLOCK(obj); zfs_vmobject_wunlock(obj);
return (error); return (error);
} }
@ -5683,7 +5684,7 @@ zfs_getpages(struct vnode *vp, vm_page_t *m, int count, int reqpage)
mfirst = m[reqstart]; mfirst = m[reqstart];
mlast = m[reqstart + reqsize - 1]; mlast = m[reqstart + reqsize - 1];
VM_OBJECT_WLOCK(object); zfs_vmobject_wlock(object);
for (i = 0; i < reqstart; i++) { for (i = 0; i < reqstart; i++) {
vm_page_lock(m[i]); vm_page_lock(m[i]);
@ -5699,9 +5700,9 @@ zfs_getpages(struct vnode *vp, vm_page_t *m, int count, int reqpage)
if (mreq->valid && reqsize == 1) { if (mreq->valid && reqsize == 1) {
if (mreq->valid != VM_PAGE_BITS_ALL) if (mreq->valid != VM_PAGE_BITS_ALL)
vm_page_zero_invalid(mreq, TRUE); vm_page_zero_invalid(mreq, TRUE);
VM_OBJECT_WUNLOCK(object); zfs_vmobject_wunlock(object);
ZFS_EXIT(zfsvfs); ZFS_EXIT(zfsvfs);
return (VM_PAGER_OK); return (vm_pagerret_ok());
} }
PCPU_INC(cnt.v_vnodein); PCPU_INC(cnt.v_vnodein);
@ -5715,16 +5716,16 @@ zfs_getpages(struct vnode *vp, vm_page_t *m, int count, int reqpage)
vm_page_unlock(m[i]); vm_page_unlock(m[i]);
} }
} }
VM_OBJECT_WUNLOCK(object); zfs_vmobject_wunlock(object);
ZFS_EXIT(zfsvfs); ZFS_EXIT(zfsvfs);
return (VM_PAGER_BAD); return (vm_pagerret_bad());
} }
lsize = PAGE_SIZE; lsize = PAGE_SIZE;
if (IDX_TO_OFF(mlast->pindex) + lsize > object->un_pager.vnp.vnp_size) if (IDX_TO_OFF(mlast->pindex) + lsize > object->un_pager.vnp.vnp_size)
lsize = object->un_pager.vnp.vnp_size - IDX_TO_OFF(mlast->pindex); lsize = object->un_pager.vnp.vnp_size - IDX_TO_OFF(mlast->pindex);
VM_OBJECT_WUNLOCK(object); zfs_vmobject_wunlock(object);
for (i = reqstart; i < reqstart + reqsize; i++) { for (i = reqstart; i < reqstart + reqsize; i++) {
size = PAGE_SIZE; size = PAGE_SIZE;
@ -5740,7 +5741,7 @@ zfs_getpages(struct vnode *vp, vm_page_t *m, int count, int reqpage)
break; break;
} }
VM_OBJECT_WLOCK(object); zfs_vmobject_wlock(object);
for (i = reqstart; i < reqstart + reqsize; i++) { for (i = reqstart; i < reqstart + reqsize; i++) {
if (!error) if (!error)
@ -5750,11 +5751,11 @@ zfs_getpages(struct vnode *vp, vm_page_t *m, int count, int reqpage)
vm_page_readahead_finish(m[i]); vm_page_readahead_finish(m[i]);
} }
VM_OBJECT_WUNLOCK(object); zfs_vmobject_wunlock(object);
ZFS_ACCESSTIME_STAMP(zfsvfs, zp); ZFS_ACCESSTIME_STAMP(zfsvfs, zp);
ZFS_EXIT(zfsvfs); ZFS_EXIT(zfsvfs);
return (error ? VM_PAGER_ERROR : VM_PAGER_OK); return (error ? vm_pagerret_error() : vm_pagerret_ok());
} }
static int static int

View File

@ -157,6 +157,7 @@ cddl/compat/opensolaris/kern/opensolaris_sysevent.c optional zfs compile-with
cddl/compat/opensolaris/kern/opensolaris_taskq.c optional zfs compile-with "${ZFS_C}" cddl/compat/opensolaris/kern/opensolaris_taskq.c optional zfs compile-with "${ZFS_C}"
cddl/compat/opensolaris/kern/opensolaris_uio.c optional zfs compile-with "${ZFS_C}" cddl/compat/opensolaris/kern/opensolaris_uio.c optional zfs compile-with "${ZFS_C}"
cddl/compat/opensolaris/kern/opensolaris_vfs.c optional zfs compile-with "${ZFS_C}" cddl/compat/opensolaris/kern/opensolaris_vfs.c optional zfs compile-with "${ZFS_C}"
cddl/compat/opensolaris/kern/opensolaris_vm.c optional zfs compile-with "${ZFS_C}"
cddl/compat/opensolaris/kern/opensolaris_zone.c optional zfs compile-with "${ZFS_C}" cddl/compat/opensolaris/kern/opensolaris_zone.c optional zfs compile-with "${ZFS_C}"
cddl/contrib/opensolaris/common/acl/acl_common.c optional zfs compile-with "${ZFS_C}" cddl/contrib/opensolaris/common/acl/acl_common.c optional zfs compile-with "${ZFS_C}"
cddl/contrib/opensolaris/common/avl/avl.c optional zfs compile-with "${ZFS_C}" cddl/contrib/opensolaris/common/avl/avl.c optional zfs compile-with "${ZFS_C}"

View File

@ -55,6 +55,7 @@ __FBSDID("$FreeBSD$");
#include <sys/ptrace.h> #include <sys/ptrace.h>
#include <sys/random.h> #include <sys/random.h>
#include <sys/reboot.h> #include <sys/reboot.h>
#include <sys/rwlock.h>
#include <sys/sched.h> #include <sys/sched.h>
#include <sys/signalvar.h> #include <sys/signalvar.h>
#include <sys/syscall.h> #include <sys/syscall.h>

View File

@ -53,7 +53,6 @@ __FBSDID("$FreeBSD$");
#include <vm/vm.h> #include <vm/vm.h>
#include <vm/vm_object.h> #include <vm/vm_object.h>
#include <vm/vm_page.h> #include <vm/vm_page.h>
#include <vm/vm_pager.h>
#include <machine/cache.h> #include <machine/cache.h>
#include <machine/clock.h> #include <machine/clock.h>

View File

@ -53,7 +53,6 @@ __FBSDID("$FreeBSD$");
#include <vm/vm.h> #include <vm/vm.h>
#include <vm/vm_object.h> #include <vm/vm_object.h>
#include <vm/vm_page.h> #include <vm/vm_page.h>
#include <vm/vm_pager.h>
#include <machine/cache.h> #include <machine/cache.h>
#include <machine/clock.h> #include <machine/clock.h>

View File

@ -64,7 +64,6 @@ __FBSDID("$FreeBSD$");
#include <vm/vm.h> #include <vm/vm.h>
#include <vm/vm_object.h> #include <vm/vm_object.h>
#include <vm/vm_page.h> #include <vm/vm_page.h>
#include <vm/vm_pager.h>
#include <machine/clock.h> #include <machine/clock.h>
#include <machine/cpu.h> #include <machine/cpu.h>

View File

@ -55,7 +55,6 @@ __FBSDID("$FreeBSD$");
#include <vm/vm.h> #include <vm/vm.h>
#include <vm/vm_object.h> #include <vm/vm_object.h>
#include <vm/vm_page.h> #include <vm/vm_page.h>
#include <vm/vm_pager.h>
#include <machine/atomic.h> #include <machine/atomic.h>
#include <machine/cache.h> #include <machine/cache.h>

View File

@ -52,7 +52,6 @@ __FBSDID("$FreeBSD$");
#include <vm/vm.h> #include <vm/vm.h>
#include <vm/vm_object.h> #include <vm/vm_object.h>
#include <vm/vm_page.h> #include <vm/vm_page.h>
#include <vm/vm_pager.h>
#include <machine/clock.h> #include <machine/clock.h>
#include <machine/cpu.h> #include <machine/cpu.h>

View File

@ -55,7 +55,6 @@ __FBSDID("$FreeBSD$");
#include <vm/vm.h> #include <vm/vm.h>
#include <vm/vm_object.h> #include <vm/vm_object.h>
#include <vm/vm_page.h> #include <vm/vm_page.h>
#include <vm/vm_pager.h>
#include <machine/cache.h> #include <machine/cache.h>
#include <machine/clock.h> #include <machine/clock.h>

View File

@ -54,7 +54,6 @@ __FBSDID("$FreeBSD$");
#include <vm/vm.h> #include <vm/vm.h>
#include <vm/vm_object.h> #include <vm/vm_object.h>
#include <vm/vm_page.h> #include <vm/vm_page.h>
#include <vm/vm_pager.h>
#include <machine/clock.h> #include <machine/clock.h>
#include <machine/cpu.h> #include <machine/cpu.h>

View File

@ -58,6 +58,7 @@ __FBSDID("$FreeBSD$");
#include <sys/mbuf.h> #include <sys/mbuf.h>
#include <sys/msgbuf.h> #include <sys/msgbuf.h>
#include <sys/reboot.h> #include <sys/reboot.h>
#include <sys/rwlock.h>
#include <sys/sched.h> #include <sys/sched.h>
#include <sys/sysctl.h> #include <sys/sysctl.h>
#include <sys/sysproto.h> #include <sys/sysproto.h>

View File

@ -54,7 +54,6 @@ __FBSDID("$FreeBSD$");
#include <vm/vm.h> #include <vm/vm.h>
#include <vm/vm_object.h> #include <vm/vm_object.h>
#include <vm/vm_page.h> #include <vm/vm_page.h>
#include <vm/vm_pager.h>
#include <machine/cache.h> #include <machine/cache.h>
#include <machine/clock.h> #include <machine/clock.h>

View File

@ -53,7 +53,6 @@ __FBSDID("$FreeBSD$");
#include <vm/vm.h> #include <vm/vm.h>
#include <vm/vm_object.h> #include <vm/vm_object.h>
#include <vm/vm_page.h> #include <vm/vm_page.h>
#include <vm/vm_pager.h>
#include <machine/cache.h> #include <machine/cache.h>
#include <machine/clock.h> #include <machine/clock.h>

View File

@ -55,7 +55,6 @@ __FBSDID("$FreeBSD$");
#include <vm/vm.h> #include <vm/vm.h>
#include <vm/vm_object.h> #include <vm/vm_object.h>
#include <vm/vm_page.h> #include <vm/vm_page.h>
#include <vm/vm_pager.h>
#include <machine/cache.h> #include <machine/cache.h>
#include <machine/clock.h> #include <machine/clock.h>

View File

@ -28,6 +28,7 @@ SRCS+= opensolaris_sysevent.c
SRCS+= opensolaris_taskq.c SRCS+= opensolaris_taskq.c
SRCS+= opensolaris_uio.c SRCS+= opensolaris_uio.c
SRCS+= opensolaris_vfs.c SRCS+= opensolaris_vfs.c
SRCS+= opensolaris_vm.c
SRCS+= opensolaris_zone.c SRCS+= opensolaris_zone.c
_A=${.CURDIR}/../../cddl/contrib/opensolaris/common/atomic _A=${.CURDIR}/../../cddl/contrib/opensolaris/common/atomic

View File

@ -80,6 +80,7 @@ __FBSDID("$FreeBSD$");
#include <sys/pcpu.h> #include <sys/pcpu.h>
#include <sys/ptrace.h> #include <sys/ptrace.h>
#include <sys/reboot.h> #include <sys/reboot.h>
#include <sys/rwlock.h>
#include <sys/sched.h> #include <sys/sched.h>
#include <sys/signalvar.h> #include <sys/signalvar.h>
#ifdef SMP #ifdef SMP

View File

@ -84,6 +84,7 @@ __FBSDID("$FreeBSD$");
#include <sys/mutex.h> #include <sys/mutex.h>
#include <sys/ptrace.h> #include <sys/ptrace.h>
#include <sys/reboot.h> #include <sys/reboot.h>
#include <sys/rwlock.h>
#include <sys/signalvar.h> #include <sys/signalvar.h>
#include <sys/syscallsubr.h> #include <sys/syscallsubr.h>
#include <sys/sysctl.h> #include <sys/sysctl.h>

View File

@ -136,7 +136,6 @@ __FBSDID("$FreeBSD$");
#include <vm/vm_object.h> #include <vm/vm_object.h>
#include <vm/vm_extern.h> #include <vm/vm_extern.h>
#include <vm/vm_pageout.h> #include <vm/vm_pageout.h>
#include <vm/vm_pager.h>
#include <vm/uma.h> #include <vm/uma.h>
#include <machine/cpu.h> #include <machine/cpu.h>

View File

@ -140,7 +140,6 @@ __FBSDID("$FreeBSD$");
#include <vm/vm_object.h> #include <vm/vm_object.h>
#include <vm/vm_extern.h> #include <vm/vm_extern.h>
#include <vm/vm_pageout.h> #include <vm/vm_pageout.h>
#include <vm/vm_pager.h>
#include <vm/uma.h> #include <vm/uma.h>
#include <machine/_inttypes.h> #include <machine/_inttypes.h>

View File

@ -117,7 +117,6 @@ __FBSDID("$FreeBSD$");
#include <vm/vm_object.h> #include <vm/vm_object.h>
#include <vm/vm_extern.h> #include <vm/vm_extern.h>
#include <vm/vm_pageout.h> #include <vm/vm_pageout.h>
#include <vm/vm_pager.h>
#include <machine/md_var.h> #include <machine/md_var.h>
#include <machine/mmuvar.h> #include <machine/mmuvar.h>

View File

@ -101,6 +101,7 @@ __FBSDID("$FreeBSD$");
#include <sys/kernel.h> #include <sys/kernel.h>
#include <sys/lock.h> #include <sys/lock.h>
#include <sys/mutex.h> #include <sys/mutex.h>
#include <sys/rwlock.h>
#include <sys/sysctl.h> #include <sys/sysctl.h>
#include <sys/exec.h> #include <sys/exec.h>
#include <sys/ktr.h> #include <sys/ktr.h>

View File

@ -45,7 +45,6 @@ __FBSDID("$FreeBSD$");
#include <vm/vm_object.h> #include <vm/vm_object.h>
#include <vm/vm_extern.h> #include <vm/vm_extern.h>
#include <vm/vm_pageout.h> #include <vm/vm_pageout.h>
#include <vm/vm_pager.h>
#include <vm/uma.h> #include <vm/uma.h>
#include <powerpc/aim/mmu_oea64.h> #include <powerpc/aim/mmu_oea64.h>

View File

@ -65,6 +65,7 @@ __FBSDID("$FreeBSD$");
#include <sys/pcpu.h> #include <sys/pcpu.h>
#include <sys/ptrace.h> #include <sys/ptrace.h>
#include <sys/reboot.h> #include <sys/reboot.h>
#include <sys/rwlock.h>
#include <sys/signalvar.h> #include <sys/signalvar.h>
#include <sys/smp.h> #include <sys/smp.h>
#include <sys/syscallsubr.h> #include <sys/syscallsubr.h>

View File

@ -53,7 +53,6 @@ __FBSDID("$FreeBSD$");
#include <vm/vm_object.h> #include <vm/vm_object.h>
#include <vm/vm_extern.h> #include <vm/vm_extern.h>
#include <vm/vm_pageout.h> #include <vm/vm_pageout.h>
#include <vm/vm_pager.h>
#include <machine/cpufunc.h> #include <machine/cpufunc.h>
#include <machine/frame.h> #include <machine/frame.h>