Fix other architectures and ZFS.
Sponsored by: EMC / Isilon storage division
This commit is contained in:
parent
b2afca4987
commit
066bbc97b6
@ -70,6 +70,7 @@ __FBSDID("$FreeBSD$");
|
||||
#include <sys/mutex.h>
|
||||
#include <sys/pcpu.h>
|
||||
#include <sys/ptrace.h>
|
||||
#include <sys/rwlock.h>
|
||||
#include <sys/signalvar.h>
|
||||
#include <sys/syscallsubr.h>
|
||||
#include <sys/sysctl.h>
|
||||
|
@ -61,6 +61,7 @@ __FBSDID("$FreeBSD$");
|
||||
#include <sys/pcpu.h>
|
||||
#include <sys/proc.h>
|
||||
#include <sys/ptrace.h>
|
||||
#include <sys/rwlock.h>
|
||||
#include <sys/cons.h>
|
||||
#include <sys/bio.h>
|
||||
#include <sys/bus.h>
|
||||
|
@ -53,6 +53,7 @@ __FBSDID("$FreeBSD$");
|
||||
#include <sys/pcpu.h>
|
||||
#include <sys/proc.h>
|
||||
#include <sys/ptrace.h>
|
||||
#include <sys/rwlock.h>
|
||||
#include <sys/cons.h>
|
||||
#include <sys/bio.h>
|
||||
#include <sys/bus.h>
|
||||
|
@ -63,6 +63,7 @@ __FBSDID("$FreeBSD$");
|
||||
#include <sys/pcpu.h>
|
||||
#include <sys/proc.h>
|
||||
#include <sys/ptrace.h>
|
||||
#include <sys/rwlock.h>
|
||||
#include <sys/cons.h>
|
||||
#include <sys/bio.h>
|
||||
#include <sys/bus.h>
|
||||
|
@ -66,6 +66,7 @@ __FBSDID("$FreeBSD$");
|
||||
#include <sys/pcpu.h>
|
||||
#include <sys/proc.h>
|
||||
#include <sys/ptrace.h>
|
||||
#include <sys/rwlock.h>
|
||||
#include <sys/cons.h>
|
||||
#include <sys/bio.h>
|
||||
#include <sys/bus.h>
|
||||
|
@ -63,6 +63,7 @@ __FBSDID("$FreeBSD$");
|
||||
#include <sys/pcpu.h>
|
||||
#include <sys/proc.h>
|
||||
#include <sys/ptrace.h>
|
||||
#include <sys/rwlock.h>
|
||||
#include <sys/cons.h>
|
||||
#include <sys/bio.h>
|
||||
#include <sys/bus.h>
|
||||
|
@ -63,6 +63,7 @@ __FBSDID("$FreeBSD$");
|
||||
#include <sys/pcpu.h>
|
||||
#include <sys/proc.h>
|
||||
#include <sys/ptrace.h>
|
||||
#include <sys/rwlock.h>
|
||||
#include <sys/cons.h>
|
||||
#include <sys/bio.h>
|
||||
#include <sys/bus.h>
|
||||
|
@ -63,6 +63,7 @@ __FBSDID("$FreeBSD$");
|
||||
#include <sys/pcpu.h>
|
||||
#include <sys/proc.h>
|
||||
#include <sys/ptrace.h>
|
||||
#include <sys/rwlock.h>
|
||||
#include <sys/cons.h>
|
||||
#include <sys/bio.h>
|
||||
#include <sys/bus.h>
|
||||
|
@ -63,6 +63,7 @@ __FBSDID("$FreeBSD$");
|
||||
#include <sys/pcpu.h>
|
||||
#include <sys/proc.h>
|
||||
#include <sys/ptrace.h>
|
||||
#include <sys/rwlock.h>
|
||||
#include <sys/cons.h>
|
||||
#include <sys/bio.h>
|
||||
#include <sys/bus.h>
|
||||
|
@ -65,6 +65,7 @@ __FBSDID("$FreeBSD$");
|
||||
#include <sys/pcpu.h>
|
||||
#include <sys/proc.h>
|
||||
#include <sys/ptrace.h>
|
||||
#include <sys/rwlock.h>
|
||||
#include <sys/cons.h>
|
||||
#include <sys/bio.h>
|
||||
#include <sys/bus.h>
|
||||
|
84
sys/cddl/compat/opensolaris/kern/opensolaris_vm.c
Normal file
84
sys/cddl/compat/opensolaris/kern/opensolaris_vm.c
Normal 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);
|
||||
}
|
34
sys/cddl/compat/opensolaris/sys/freebsd_rwlock.h
Normal file
34
sys/cddl/compat/opensolaris/sys/freebsd_rwlock.h
Normal 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
|
44
sys/cddl/compat/opensolaris/sys/vm.h
Normal file
44
sys/cddl/compat/opensolaris/sys/vm.h
Normal 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_ */
|
@ -94,7 +94,6 @@ extern "C" {
|
||||
#include <vm/vm.h>
|
||||
#include <vm/vm_page.h>
|
||||
#include <vm/vm_object.h>
|
||||
#include <vm/vm_pager.h>
|
||||
#include <vm/vm_kern.h>
|
||||
#include <vm/vm_map.h>
|
||||
/* There is clash. vm_map.h defines the two below and vdev_cache.c use them. */
|
||||
|
@ -33,6 +33,7 @@
|
||||
#include <sys/sysmacros.h>
|
||||
#include <sys/resource.h>
|
||||
#include <sys/vfs.h>
|
||||
#include <sys/vm.h>
|
||||
#include <sys/vnode.h>
|
||||
#include <sys/file.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;
|
||||
|
||||
obj = vp->v_object;
|
||||
VM_OBJECT_LOCK_ASSERT(obj, MA_OWNED);
|
||||
zfs_vmobject_assert_wlocked(obj);
|
||||
|
||||
for (;;) {
|
||||
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;
|
||||
|
||||
obj = vp->v_object;
|
||||
VM_OBJECT_LOCK_ASSERT(obj, MA_OWNED);
|
||||
zfs_vmobject_assert_wlocked(obj);
|
||||
|
||||
for (;;) {
|
||||
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);
|
||||
|
||||
off = start & PAGEOFFSET;
|
||||
VM_OBJECT_WLOCK(obj);
|
||||
zfs_vmobject_wlock(obj);
|
||||
for (start &= PAGEMASK; len > 0; start += PAGESIZE) {
|
||||
vm_page_t pp;
|
||||
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"));
|
||||
KASSERT(!pmap_page_is_write_mapped(pp),
|
||||
("zfs update_pages: writable page in putpages case"));
|
||||
VM_OBJECT_WUNLOCK(obj);
|
||||
zfs_vmobject_wunlock(obj);
|
||||
|
||||
va = zfs_map_page(pp, &sf);
|
||||
(void) dmu_write(os, oid, start, nbytes, va, tx);
|
||||
zfs_unmap_page(sf);
|
||||
|
||||
VM_OBJECT_WLOCK(obj);
|
||||
zfs_vmobject_wlock(obj);
|
||||
vm_page_undirty(pp);
|
||||
} else if ((pp = page_busy(vp, start, off, nbytes)) != NULL) {
|
||||
VM_OBJECT_WUNLOCK(obj);
|
||||
zfs_vmobject_wunlock(obj);
|
||||
|
||||
va = zfs_map_page(pp, &sf);
|
||||
(void) dmu_read(os, oid, start+off, nbytes,
|
||||
va+off, DMU_READ_PREFETCH);;
|
||||
zfs_unmap_page(sf);
|
||||
|
||||
VM_OBJECT_WLOCK(obj);
|
||||
zfs_vmobject_wlock(obj);
|
||||
page_unbusy(pp);
|
||||
}
|
||||
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)
|
||||
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((uio->uio_loffset & PAGEOFFSET) == 0);
|
||||
|
||||
VM_OBJECT_WLOCK(obj);
|
||||
zfs_vmobject_wlock(obj);
|
||||
for (start = uio->uio_loffset; len > 0; start += PAGESIZE) {
|
||||
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);
|
||||
if (pp->valid == 0) {
|
||||
vm_page_io_start(pp);
|
||||
VM_OBJECT_WUNLOCK(obj);
|
||||
zfs_vmobject_wunlock(obj);
|
||||
va = zfs_map_page(pp, &sf);
|
||||
error = dmu_read(os, zp->z_id, start, bytes, va,
|
||||
DMU_READ_PREFETCH);
|
||||
if (bytes != PAGESIZE && error == 0)
|
||||
bzero(va + bytes, PAGESIZE - bytes);
|
||||
zfs_unmap_page(sf);
|
||||
VM_OBJECT_WLOCK(obj);
|
||||
zfs_vmobject_wlock(obj);
|
||||
vm_page_io_finish(pp);
|
||||
vm_page_lock(pp);
|
||||
if (error) {
|
||||
@ -555,7 +556,7 @@ mappedread_sf(vnode_t *vp, int nbytes, uio_t *uio)
|
||||
uio->uio_offset += bytes;
|
||||
len -= bytes;
|
||||
}
|
||||
VM_OBJECT_WUNLOCK(obj);
|
||||
zfs_vmobject_wunlock(obj);
|
||||
return (error);
|
||||
}
|
||||
|
||||
@ -587,7 +588,7 @@ mappedread(vnode_t *vp, int nbytes, uio_t *uio)
|
||||
|
||||
start = uio->uio_loffset;
|
||||
off = start & PAGEOFFSET;
|
||||
VM_OBJECT_WLOCK(obj);
|
||||
zfs_vmobject_wlock(obj);
|
||||
for (start &= PAGEMASK; len > 0; start += PAGESIZE) {
|
||||
vm_page_t pp;
|
||||
uint64_t bytes = MIN(PAGESIZE - off, len);
|
||||
@ -596,23 +597,23 @@ mappedread(vnode_t *vp, int nbytes, uio_t *uio)
|
||||
struct sf_buf *sf;
|
||||
caddr_t va;
|
||||
|
||||
VM_OBJECT_WUNLOCK(obj);
|
||||
zfs_vmobject_wunlock(obj);
|
||||
va = zfs_map_page(pp, &sf);
|
||||
error = uiomove(va + off, bytes, UIO_READ, uio);
|
||||
zfs_unmap_page(sf);
|
||||
VM_OBJECT_WLOCK(obj);
|
||||
zfs_vmobject_wlock(obj);
|
||||
page_unhold(pp);
|
||||
} else {
|
||||
VM_OBJECT_WUNLOCK(obj);
|
||||
zfs_vmobject_wunlock(obj);
|
||||
error = dmu_read_uio(os, zp->z_id, uio, bytes);
|
||||
VM_OBJECT_WLOCK(obj);
|
||||
zfs_vmobject_wlock(obj);
|
||||
}
|
||||
len -= bytes;
|
||||
off = 0;
|
||||
if (error)
|
||||
break;
|
||||
}
|
||||
VM_OBJECT_WUNLOCK(obj);
|
||||
zfs_vmobject_wunlock(obj);
|
||||
return (error);
|
||||
}
|
||||
|
||||
@ -5683,7 +5684,7 @@ zfs_getpages(struct vnode *vp, vm_page_t *m, int count, int reqpage)
|
||||
mfirst = m[reqstart];
|
||||
mlast = m[reqstart + reqsize - 1];
|
||||
|
||||
VM_OBJECT_WLOCK(object);
|
||||
zfs_vmobject_wlock(object);
|
||||
|
||||
for (i = 0; i < reqstart; 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 != VM_PAGE_BITS_ALL)
|
||||
vm_page_zero_invalid(mreq, TRUE);
|
||||
VM_OBJECT_WUNLOCK(object);
|
||||
zfs_vmobject_wunlock(object);
|
||||
ZFS_EXIT(zfsvfs);
|
||||
return (VM_PAGER_OK);
|
||||
return (vm_pagerret_ok());
|
||||
}
|
||||
|
||||
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_OBJECT_WUNLOCK(object);
|
||||
zfs_vmobject_wunlock(object);
|
||||
ZFS_EXIT(zfsvfs);
|
||||
return (VM_PAGER_BAD);
|
||||
return (vm_pagerret_bad());
|
||||
}
|
||||
|
||||
lsize = PAGE_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);
|
||||
|
||||
VM_OBJECT_WUNLOCK(object);
|
||||
zfs_vmobject_wunlock(object);
|
||||
|
||||
for (i = reqstart; i < reqstart + reqsize; i++) {
|
||||
size = PAGE_SIZE;
|
||||
@ -5740,7 +5741,7 @@ zfs_getpages(struct vnode *vp, vm_page_t *m, int count, int reqpage)
|
||||
break;
|
||||
}
|
||||
|
||||
VM_OBJECT_WLOCK(object);
|
||||
zfs_vmobject_wlock(object);
|
||||
|
||||
for (i = reqstart; i < reqstart + reqsize; i++) {
|
||||
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_OBJECT_WUNLOCK(object);
|
||||
zfs_vmobject_wunlock(object);
|
||||
|
||||
ZFS_ACCESSTIME_STAMP(zfsvfs, zp);
|
||||
ZFS_EXIT(zfsvfs);
|
||||
return (error ? VM_PAGER_ERROR : VM_PAGER_OK);
|
||||
return (error ? vm_pagerret_error() : vm_pagerret_ok());
|
||||
}
|
||||
|
||||
static int
|
||||
|
@ -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_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_vm.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/avl/avl.c optional zfs compile-with "${ZFS_C}"
|
||||
|
@ -55,6 +55,7 @@ __FBSDID("$FreeBSD$");
|
||||
#include <sys/ptrace.h>
|
||||
#include <sys/random.h>
|
||||
#include <sys/reboot.h>
|
||||
#include <sys/rwlock.h>
|
||||
#include <sys/sched.h>
|
||||
#include <sys/signalvar.h>
|
||||
#include <sys/syscall.h>
|
||||
|
@ -53,7 +53,6 @@ __FBSDID("$FreeBSD$");
|
||||
#include <vm/vm.h>
|
||||
#include <vm/vm_object.h>
|
||||
#include <vm/vm_page.h>
|
||||
#include <vm/vm_pager.h>
|
||||
|
||||
#include <machine/cache.h>
|
||||
#include <machine/clock.h>
|
||||
|
@ -53,7 +53,6 @@ __FBSDID("$FreeBSD$");
|
||||
#include <vm/vm.h>
|
||||
#include <vm/vm_object.h>
|
||||
#include <vm/vm_page.h>
|
||||
#include <vm/vm_pager.h>
|
||||
|
||||
#include <machine/cache.h>
|
||||
#include <machine/clock.h>
|
||||
|
@ -64,7 +64,6 @@ __FBSDID("$FreeBSD$");
|
||||
#include <vm/vm.h>
|
||||
#include <vm/vm_object.h>
|
||||
#include <vm/vm_page.h>
|
||||
#include <vm/vm_pager.h>
|
||||
|
||||
#include <machine/clock.h>
|
||||
#include <machine/cpu.h>
|
||||
|
@ -55,7 +55,6 @@ __FBSDID("$FreeBSD$");
|
||||
#include <vm/vm.h>
|
||||
#include <vm/vm_object.h>
|
||||
#include <vm/vm_page.h>
|
||||
#include <vm/vm_pager.h>
|
||||
|
||||
#include <machine/atomic.h>
|
||||
#include <machine/cache.h>
|
||||
|
@ -52,7 +52,6 @@ __FBSDID("$FreeBSD$");
|
||||
#include <vm/vm.h>
|
||||
#include <vm/vm_object.h>
|
||||
#include <vm/vm_page.h>
|
||||
#include <vm/vm_pager.h>
|
||||
|
||||
#include <machine/clock.h>
|
||||
#include <machine/cpu.h>
|
||||
|
@ -55,7 +55,6 @@ __FBSDID("$FreeBSD$");
|
||||
#include <vm/vm.h>
|
||||
#include <vm/vm_object.h>
|
||||
#include <vm/vm_page.h>
|
||||
#include <vm/vm_pager.h>
|
||||
|
||||
#include <machine/cache.h>
|
||||
#include <machine/clock.h>
|
||||
|
@ -54,7 +54,6 @@ __FBSDID("$FreeBSD$");
|
||||
#include <vm/vm.h>
|
||||
#include <vm/vm_object.h>
|
||||
#include <vm/vm_page.h>
|
||||
#include <vm/vm_pager.h>
|
||||
|
||||
#include <machine/clock.h>
|
||||
#include <machine/cpu.h>
|
||||
|
@ -58,6 +58,7 @@ __FBSDID("$FreeBSD$");
|
||||
#include <sys/mbuf.h>
|
||||
#include <sys/msgbuf.h>
|
||||
#include <sys/reboot.h>
|
||||
#include <sys/rwlock.h>
|
||||
#include <sys/sched.h>
|
||||
#include <sys/sysctl.h>
|
||||
#include <sys/sysproto.h>
|
||||
|
@ -54,7 +54,6 @@ __FBSDID("$FreeBSD$");
|
||||
#include <vm/vm.h>
|
||||
#include <vm/vm_object.h>
|
||||
#include <vm/vm_page.h>
|
||||
#include <vm/vm_pager.h>
|
||||
|
||||
#include <machine/cache.h>
|
||||
#include <machine/clock.h>
|
||||
|
@ -53,7 +53,6 @@ __FBSDID("$FreeBSD$");
|
||||
#include <vm/vm.h>
|
||||
#include <vm/vm_object.h>
|
||||
#include <vm/vm_page.h>
|
||||
#include <vm/vm_pager.h>
|
||||
|
||||
#include <machine/cache.h>
|
||||
#include <machine/clock.h>
|
||||
|
@ -55,7 +55,6 @@ __FBSDID("$FreeBSD$");
|
||||
#include <vm/vm.h>
|
||||
#include <vm/vm_object.h>
|
||||
#include <vm/vm_page.h>
|
||||
#include <vm/vm_pager.h>
|
||||
|
||||
#include <machine/cache.h>
|
||||
#include <machine/clock.h>
|
||||
|
@ -28,6 +28,7 @@ SRCS+= opensolaris_sysevent.c
|
||||
SRCS+= opensolaris_taskq.c
|
||||
SRCS+= opensolaris_uio.c
|
||||
SRCS+= opensolaris_vfs.c
|
||||
SRCS+= opensolaris_vm.c
|
||||
SRCS+= opensolaris_zone.c
|
||||
|
||||
_A=${.CURDIR}/../../cddl/contrib/opensolaris/common/atomic
|
||||
|
@ -80,6 +80,7 @@ __FBSDID("$FreeBSD$");
|
||||
#include <sys/pcpu.h>
|
||||
#include <sys/ptrace.h>
|
||||
#include <sys/reboot.h>
|
||||
#include <sys/rwlock.h>
|
||||
#include <sys/sched.h>
|
||||
#include <sys/signalvar.h>
|
||||
#ifdef SMP
|
||||
|
@ -84,6 +84,7 @@ __FBSDID("$FreeBSD$");
|
||||
#include <sys/mutex.h>
|
||||
#include <sys/ptrace.h>
|
||||
#include <sys/reboot.h>
|
||||
#include <sys/rwlock.h>
|
||||
#include <sys/signalvar.h>
|
||||
#include <sys/syscallsubr.h>
|
||||
#include <sys/sysctl.h>
|
||||
|
@ -136,7 +136,6 @@ __FBSDID("$FreeBSD$");
|
||||
#include <vm/vm_object.h>
|
||||
#include <vm/vm_extern.h>
|
||||
#include <vm/vm_pageout.h>
|
||||
#include <vm/vm_pager.h>
|
||||
#include <vm/uma.h>
|
||||
|
||||
#include <machine/cpu.h>
|
||||
|
@ -140,7 +140,6 @@ __FBSDID("$FreeBSD$");
|
||||
#include <vm/vm_object.h>
|
||||
#include <vm/vm_extern.h>
|
||||
#include <vm/vm_pageout.h>
|
||||
#include <vm/vm_pager.h>
|
||||
#include <vm/uma.h>
|
||||
|
||||
#include <machine/_inttypes.h>
|
||||
|
@ -117,7 +117,6 @@ __FBSDID("$FreeBSD$");
|
||||
#include <vm/vm_object.h>
|
||||
#include <vm/vm_extern.h>
|
||||
#include <vm/vm_pageout.h>
|
||||
#include <vm/vm_pager.h>
|
||||
|
||||
#include <machine/md_var.h>
|
||||
#include <machine/mmuvar.h>
|
||||
|
@ -101,6 +101,7 @@ __FBSDID("$FreeBSD$");
|
||||
#include <sys/kernel.h>
|
||||
#include <sys/lock.h>
|
||||
#include <sys/mutex.h>
|
||||
#include <sys/rwlock.h>
|
||||
#include <sys/sysctl.h>
|
||||
#include <sys/exec.h>
|
||||
#include <sys/ktr.h>
|
||||
|
@ -45,7 +45,6 @@ __FBSDID("$FreeBSD$");
|
||||
#include <vm/vm_object.h>
|
||||
#include <vm/vm_extern.h>
|
||||
#include <vm/vm_pageout.h>
|
||||
#include <vm/vm_pager.h>
|
||||
#include <vm/uma.h>
|
||||
|
||||
#include <powerpc/aim/mmu_oea64.h>
|
||||
|
@ -65,6 +65,7 @@ __FBSDID("$FreeBSD$");
|
||||
#include <sys/pcpu.h>
|
||||
#include <sys/ptrace.h>
|
||||
#include <sys/reboot.h>
|
||||
#include <sys/rwlock.h>
|
||||
#include <sys/signalvar.h>
|
||||
#include <sys/smp.h>
|
||||
#include <sys/syscallsubr.h>
|
||||
|
@ -53,7 +53,6 @@ __FBSDID("$FreeBSD$");
|
||||
#include <vm/vm_object.h>
|
||||
#include <vm/vm_extern.h>
|
||||
#include <vm/vm_pageout.h>
|
||||
#include <vm/vm_pager.h>
|
||||
|
||||
#include <machine/cpufunc.h>
|
||||
#include <machine/frame.h>
|
||||
|
Loading…
Reference in New Issue
Block a user