From owner-svn-src-user@FreeBSD.ORG Thu Feb 21 15:02:44 2013 Return-Path: Delivered-To: svn-src-user@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by hub.freebsd.org (Postfix) with ESMTP id E2C839E4; Thu, 21 Feb 2013 15:02:44 +0000 (UTC) (envelope-from attilio@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) by mx1.freebsd.org (Postfix) with ESMTP id D200FADE; Thu, 21 Feb 2013 15:02:44 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.5/8.14.5) with ESMTP id r1LF2iis059134; Thu, 21 Feb 2013 15:02:44 GMT (envelope-from attilio@svn.freebsd.org) Received: (from attilio@localhost) by svn.freebsd.org (8.14.5/8.14.5/Submit) id r1LF2b7j059082; Thu, 21 Feb 2013 15:02:37 GMT (envelope-from attilio@svn.freebsd.org) Message-Id: <201302211502.r1LF2b7j059082@svn.freebsd.org> From: Attilio Rao Date: Thu, 21 Feb 2013 15:02:37 +0000 (UTC) To: src-committers@freebsd.org, svn-src-user@freebsd.org Subject: svn commit: r247096 - in user/attilio/vmobj-rwlock/sys: arm/arm arm/at91 arm/econa arm/s3c2xx0 arm/sa11x0 arm/xscale/i80321 arm/xscale/i8134x arm/xscale/ixp425 arm/xscale/pxa cddl/compat/opensolari... X-SVN-Group: user MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-user@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: "SVN commit messages for the experimental " user" src tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 21 Feb 2013 15:02:45 -0000 Author: attilio Date: Thu Feb 21 15:02:36 2013 New Revision: 247096 URL: http://svnweb.freebsd.org/changeset/base/247096 Log: Fix other architectures and ZFS. Sponsored by: EMC / Isilon storage division Added: user/attilio/vmobj-rwlock/sys/cddl/compat/opensolaris/kern/opensolaris_vm.c (contents, props changed) user/attilio/vmobj-rwlock/sys/cddl/compat/opensolaris/sys/freebsd_rwlock.h (contents, props changed) user/attilio/vmobj-rwlock/sys/cddl/compat/opensolaris/sys/vm.h (contents, props changed) Modified: user/attilio/vmobj-rwlock/sys/arm/arm/machdep.c user/attilio/vmobj-rwlock/sys/arm/at91/at91_machdep.c user/attilio/vmobj-rwlock/sys/arm/econa/econa_machdep.c user/attilio/vmobj-rwlock/sys/arm/s3c2xx0/s3c24x0_machdep.c user/attilio/vmobj-rwlock/sys/arm/sa11x0/assabet_machdep.c user/attilio/vmobj-rwlock/sys/arm/xscale/i80321/ep80219_machdep.c user/attilio/vmobj-rwlock/sys/arm/xscale/i80321/iq31244_machdep.c user/attilio/vmobj-rwlock/sys/arm/xscale/i8134x/crb_machdep.c user/attilio/vmobj-rwlock/sys/arm/xscale/ixp425/avila_machdep.c user/attilio/vmobj-rwlock/sys/arm/xscale/pxa/pxa_machdep.c user/attilio/vmobj-rwlock/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/zfs_context.h user/attilio/vmobj-rwlock/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_vnops.c user/attilio/vmobj-rwlock/sys/conf/files user/attilio/vmobj-rwlock/sys/ia64/ia64/machdep.c user/attilio/vmobj-rwlock/sys/mips/adm5120/adm5120_machdep.c user/attilio/vmobj-rwlock/sys/mips/alchemy/alchemy_machdep.c user/attilio/vmobj-rwlock/sys/mips/beri/beri_machdep.c user/attilio/vmobj-rwlock/sys/mips/cavium/octeon_machdep.c user/attilio/vmobj-rwlock/sys/mips/gxemul/gxemul_machdep.c user/attilio/vmobj-rwlock/sys/mips/idt/idt_machdep.c user/attilio/vmobj-rwlock/sys/mips/malta/malta_machdep.c user/attilio/vmobj-rwlock/sys/mips/mips/machdep.c user/attilio/vmobj-rwlock/sys/mips/rt305x/rt305x_machdep.c user/attilio/vmobj-rwlock/sys/mips/sentry5/s5_machdep.c user/attilio/vmobj-rwlock/sys/mips/sibyte/sb_machdep.c user/attilio/vmobj-rwlock/sys/modules/zfs/Makefile user/attilio/vmobj-rwlock/sys/pc98/pc98/machdep.c user/attilio/vmobj-rwlock/sys/powerpc/aim/machdep.c user/attilio/vmobj-rwlock/sys/powerpc/aim/mmu_oea.c user/attilio/vmobj-rwlock/sys/powerpc/aim/mmu_oea64.c user/attilio/vmobj-rwlock/sys/powerpc/aim/moea64_native.c user/attilio/vmobj-rwlock/sys/powerpc/booke/machdep.c user/attilio/vmobj-rwlock/sys/powerpc/ps3/mmu_ps3.c user/attilio/vmobj-rwlock/sys/sparc64/sparc64/machdep.c user/attilio/vmobj-rwlock/sys/sparc64/sparc64/tsb.c Modified: user/attilio/vmobj-rwlock/sys/arm/arm/machdep.c ============================================================================== --- user/attilio/vmobj-rwlock/sys/arm/arm/machdep.c Thu Feb 21 12:52:18 2013 (r247095) +++ user/attilio/vmobj-rwlock/sys/arm/arm/machdep.c Thu Feb 21 15:02:36 2013 (r247096) @@ -70,6 +70,7 @@ __FBSDID("$FreeBSD$"); #include #include #include +#include #include #include #include Modified: user/attilio/vmobj-rwlock/sys/arm/at91/at91_machdep.c ============================================================================== --- user/attilio/vmobj-rwlock/sys/arm/at91/at91_machdep.c Thu Feb 21 12:52:18 2013 (r247095) +++ user/attilio/vmobj-rwlock/sys/arm/at91/at91_machdep.c Thu Feb 21 15:02:36 2013 (r247096) @@ -61,6 +61,7 @@ __FBSDID("$FreeBSD$"); #include #include #include +#include #include #include #include Modified: user/attilio/vmobj-rwlock/sys/arm/econa/econa_machdep.c ============================================================================== --- user/attilio/vmobj-rwlock/sys/arm/econa/econa_machdep.c Thu Feb 21 12:52:18 2013 (r247095) +++ user/attilio/vmobj-rwlock/sys/arm/econa/econa_machdep.c Thu Feb 21 15:02:36 2013 (r247096) @@ -53,6 +53,7 @@ __FBSDID("$FreeBSD$"); #include #include #include +#include #include #include #include Modified: user/attilio/vmobj-rwlock/sys/arm/s3c2xx0/s3c24x0_machdep.c ============================================================================== --- user/attilio/vmobj-rwlock/sys/arm/s3c2xx0/s3c24x0_machdep.c Thu Feb 21 12:52:18 2013 (r247095) +++ user/attilio/vmobj-rwlock/sys/arm/s3c2xx0/s3c24x0_machdep.c Thu Feb 21 15:02:36 2013 (r247096) @@ -63,6 +63,7 @@ __FBSDID("$FreeBSD$"); #include #include #include +#include #include #include #include Modified: user/attilio/vmobj-rwlock/sys/arm/sa11x0/assabet_machdep.c ============================================================================== --- user/attilio/vmobj-rwlock/sys/arm/sa11x0/assabet_machdep.c Thu Feb 21 12:52:18 2013 (r247095) +++ user/attilio/vmobj-rwlock/sys/arm/sa11x0/assabet_machdep.c Thu Feb 21 15:02:36 2013 (r247096) @@ -66,6 +66,7 @@ __FBSDID("$FreeBSD$"); #include #include #include +#include #include #include #include Modified: user/attilio/vmobj-rwlock/sys/arm/xscale/i80321/ep80219_machdep.c ============================================================================== --- user/attilio/vmobj-rwlock/sys/arm/xscale/i80321/ep80219_machdep.c Thu Feb 21 12:52:18 2013 (r247095) +++ user/attilio/vmobj-rwlock/sys/arm/xscale/i80321/ep80219_machdep.c Thu Feb 21 15:02:36 2013 (r247096) @@ -63,6 +63,7 @@ __FBSDID("$FreeBSD$"); #include #include #include +#include #include #include #include Modified: user/attilio/vmobj-rwlock/sys/arm/xscale/i80321/iq31244_machdep.c ============================================================================== --- user/attilio/vmobj-rwlock/sys/arm/xscale/i80321/iq31244_machdep.c Thu Feb 21 12:52:18 2013 (r247095) +++ user/attilio/vmobj-rwlock/sys/arm/xscale/i80321/iq31244_machdep.c Thu Feb 21 15:02:36 2013 (r247096) @@ -63,6 +63,7 @@ __FBSDID("$FreeBSD$"); #include #include #include +#include #include #include #include Modified: user/attilio/vmobj-rwlock/sys/arm/xscale/i8134x/crb_machdep.c ============================================================================== --- user/attilio/vmobj-rwlock/sys/arm/xscale/i8134x/crb_machdep.c Thu Feb 21 12:52:18 2013 (r247095) +++ user/attilio/vmobj-rwlock/sys/arm/xscale/i8134x/crb_machdep.c Thu Feb 21 15:02:36 2013 (r247096) @@ -63,6 +63,7 @@ __FBSDID("$FreeBSD$"); #include #include #include +#include #include #include #include Modified: user/attilio/vmobj-rwlock/sys/arm/xscale/ixp425/avila_machdep.c ============================================================================== --- user/attilio/vmobj-rwlock/sys/arm/xscale/ixp425/avila_machdep.c Thu Feb 21 12:52:18 2013 (r247095) +++ user/attilio/vmobj-rwlock/sys/arm/xscale/ixp425/avila_machdep.c Thu Feb 21 15:02:36 2013 (r247096) @@ -63,6 +63,7 @@ __FBSDID("$FreeBSD$"); #include #include #include +#include #include #include #include Modified: user/attilio/vmobj-rwlock/sys/arm/xscale/pxa/pxa_machdep.c ============================================================================== --- user/attilio/vmobj-rwlock/sys/arm/xscale/pxa/pxa_machdep.c Thu Feb 21 12:52:18 2013 (r247095) +++ user/attilio/vmobj-rwlock/sys/arm/xscale/pxa/pxa_machdep.c Thu Feb 21 15:02:36 2013 (r247096) @@ -65,6 +65,7 @@ __FBSDID("$FreeBSD$"); #include #include #include +#include #include #include #include Added: user/attilio/vmobj-rwlock/sys/cddl/compat/opensolaris/kern/opensolaris_vm.c ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ user/attilio/vmobj-rwlock/sys/cddl/compat/opensolaris/kern/opensolaris_vm.c Thu Feb 21 15:02:36 2013 (r247096) @@ -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 + +#include +#include +#include + +#include +#include +#include +#include +#include + +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); +} Added: user/attilio/vmobj-rwlock/sys/cddl/compat/opensolaris/sys/freebsd_rwlock.h ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ user/attilio/vmobj-rwlock/sys/cddl/compat/opensolaris/sys/freebsd_rwlock.h Thu Feb 21 15:02:36 2013 (r247096) @@ -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 + +#endif Added: user/attilio/vmobj-rwlock/sys/cddl/compat/opensolaris/sys/vm.h ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ user/attilio/vmobj-rwlock/sys/cddl/compat/opensolaris/sys/vm.h Thu Feb 21 15:02:36 2013 (r247096) @@ -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_ */ Modified: user/attilio/vmobj-rwlock/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/zfs_context.h ============================================================================== --- user/attilio/vmobj-rwlock/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/zfs_context.h Thu Feb 21 12:52:18 2013 (r247095) +++ user/attilio/vmobj-rwlock/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/zfs_context.h Thu Feb 21 15:02:36 2013 (r247096) @@ -94,7 +94,6 @@ extern "C" { #include #include #include -#include #include #include /* There is clash. vm_map.h defines the two below and vdev_cache.c use them. */ Modified: user/attilio/vmobj-rwlock/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_vnops.c ============================================================================== --- user/attilio/vmobj-rwlock/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_vnops.c Thu Feb 21 12:52:18 2013 (r247095) +++ user/attilio/vmobj-rwlock/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_vnops.c Thu Feb 21 15:02:36 2013 (r247096) @@ -33,6 +33,7 @@ #include #include #include +#include #include #include #include @@ -329,7 +330,7 @@ page_busy(vnode_t *vp, int64_t start, in 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, 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, ("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, } 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, u 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, u 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, u 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_ 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_ 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 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 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 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 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 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 Modified: user/attilio/vmobj-rwlock/sys/conf/files ============================================================================== --- user/attilio/vmobj-rwlock/sys/conf/files Thu Feb 21 12:52:18 2013 (r247095) +++ user/attilio/vmobj-rwlock/sys/conf/files Thu Feb 21 15:02:36 2013 (r247096) @@ -157,6 +157,7 @@ cddl/compat/opensolaris/kern/opensolaris 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}" Modified: user/attilio/vmobj-rwlock/sys/ia64/ia64/machdep.c ============================================================================== --- user/attilio/vmobj-rwlock/sys/ia64/ia64/machdep.c Thu Feb 21 12:52:18 2013 (r247095) +++ user/attilio/vmobj-rwlock/sys/ia64/ia64/machdep.c Thu Feb 21 15:02:36 2013 (r247096) @@ -55,6 +55,7 @@ __FBSDID("$FreeBSD$"); #include #include #include +#include #include #include #include Modified: user/attilio/vmobj-rwlock/sys/mips/adm5120/adm5120_machdep.c ============================================================================== --- user/attilio/vmobj-rwlock/sys/mips/adm5120/adm5120_machdep.c Thu Feb 21 12:52:18 2013 (r247095) +++ user/attilio/vmobj-rwlock/sys/mips/adm5120/adm5120_machdep.c Thu Feb 21 15:02:36 2013 (r247096) @@ -53,7 +53,6 @@ __FBSDID("$FreeBSD$"); #include #include #include -#include #include #include Modified: user/attilio/vmobj-rwlock/sys/mips/alchemy/alchemy_machdep.c ============================================================================== --- user/attilio/vmobj-rwlock/sys/mips/alchemy/alchemy_machdep.c Thu Feb 21 12:52:18 2013 (r247095) +++ user/attilio/vmobj-rwlock/sys/mips/alchemy/alchemy_machdep.c Thu Feb 21 15:02:36 2013 (r247096) @@ -53,7 +53,6 @@ __FBSDID("$FreeBSD$"); #include #include #include -#include #include #include Modified: user/attilio/vmobj-rwlock/sys/mips/beri/beri_machdep.c ============================================================================== --- user/attilio/vmobj-rwlock/sys/mips/beri/beri_machdep.c Thu Feb 21 12:52:18 2013 (r247095) +++ user/attilio/vmobj-rwlock/sys/mips/beri/beri_machdep.c Thu Feb 21 15:02:36 2013 (r247096) @@ -64,7 +64,6 @@ __FBSDID("$FreeBSD$"); #include #include #include -#include #include #include Modified: user/attilio/vmobj-rwlock/sys/mips/cavium/octeon_machdep.c ============================================================================== --- user/attilio/vmobj-rwlock/sys/mips/cavium/octeon_machdep.c Thu Feb 21 12:52:18 2013 (r247095) +++ user/attilio/vmobj-rwlock/sys/mips/cavium/octeon_machdep.c Thu Feb 21 15:02:36 2013 (r247096) @@ -55,7 +55,6 @@ __FBSDID("$FreeBSD$"); #include #include #include -#include #include #include Modified: user/attilio/vmobj-rwlock/sys/mips/gxemul/gxemul_machdep.c ============================================================================== --- user/attilio/vmobj-rwlock/sys/mips/gxemul/gxemul_machdep.c Thu Feb 21 12:52:18 2013 (r247095) +++ user/attilio/vmobj-rwlock/sys/mips/gxemul/gxemul_machdep.c Thu Feb 21 15:02:36 2013 (r247096) @@ -52,7 +52,6 @@ __FBSDID("$FreeBSD$"); #include #include #include -#include #include #include Modified: user/attilio/vmobj-rwlock/sys/mips/idt/idt_machdep.c ============================================================================== --- user/attilio/vmobj-rwlock/sys/mips/idt/idt_machdep.c Thu Feb 21 12:52:18 2013 (r247095) +++ user/attilio/vmobj-rwlock/sys/mips/idt/idt_machdep.c Thu Feb 21 15:02:36 2013 (r247096) @@ -55,7 +55,6 @@ __FBSDID("$FreeBSD$"); #include #include #include -#include #include #include Modified: user/attilio/vmobj-rwlock/sys/mips/malta/malta_machdep.c ============================================================================== --- user/attilio/vmobj-rwlock/sys/mips/malta/malta_machdep.c Thu Feb 21 12:52:18 2013 (r247095) +++ user/attilio/vmobj-rwlock/sys/mips/malta/malta_machdep.c Thu Feb 21 15:02:36 2013 (r247096) @@ -54,7 +54,6 @@ __FBSDID("$FreeBSD$"); #include #include #include -#include #include #include Modified: user/attilio/vmobj-rwlock/sys/mips/mips/machdep.c ============================================================================== --- user/attilio/vmobj-rwlock/sys/mips/mips/machdep.c Thu Feb 21 12:52:18 2013 (r247095) +++ user/attilio/vmobj-rwlock/sys/mips/mips/machdep.c Thu Feb 21 15:02:36 2013 (r247096) @@ -58,6 +58,7 @@ __FBSDID("$FreeBSD$"); #include #include #include +#include #include #include #include Modified: user/attilio/vmobj-rwlock/sys/mips/rt305x/rt305x_machdep.c ============================================================================== --- user/attilio/vmobj-rwlock/sys/mips/rt305x/rt305x_machdep.c Thu Feb 21 12:52:18 2013 (r247095) +++ user/attilio/vmobj-rwlock/sys/mips/rt305x/rt305x_machdep.c Thu Feb 21 15:02:36 2013 (r247096) @@ -54,7 +54,6 @@ __FBSDID("$FreeBSD$"); #include #include #include -#include #include #include Modified: user/attilio/vmobj-rwlock/sys/mips/sentry5/s5_machdep.c ============================================================================== --- user/attilio/vmobj-rwlock/sys/mips/sentry5/s5_machdep.c Thu Feb 21 12:52:18 2013 (r247095) +++ user/attilio/vmobj-rwlock/sys/mips/sentry5/s5_machdep.c Thu Feb 21 15:02:36 2013 (r247096) @@ -53,7 +53,6 @@ __FBSDID("$FreeBSD$"); #include #include #include -#include #include #include Modified: user/attilio/vmobj-rwlock/sys/mips/sibyte/sb_machdep.c ============================================================================== --- user/attilio/vmobj-rwlock/sys/mips/sibyte/sb_machdep.c Thu Feb 21 12:52:18 2013 (r247095) +++ user/attilio/vmobj-rwlock/sys/mips/sibyte/sb_machdep.c Thu Feb 21 15:02:36 2013 (r247096) @@ -55,7 +55,6 @@ __FBSDID("$FreeBSD$"); #include #include #include -#include #include #include Modified: user/attilio/vmobj-rwlock/sys/modules/zfs/Makefile ============================================================================== --- user/attilio/vmobj-rwlock/sys/modules/zfs/Makefile Thu Feb 21 12:52:18 2013 (r247095) +++ user/attilio/vmobj-rwlock/sys/modules/zfs/Makefile Thu Feb 21 15:02:36 2013 (r247096) @@ -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 Modified: user/attilio/vmobj-rwlock/sys/pc98/pc98/machdep.c ============================================================================== --- user/attilio/vmobj-rwlock/sys/pc98/pc98/machdep.c Thu Feb 21 12:52:18 2013 (r247095) +++ user/attilio/vmobj-rwlock/sys/pc98/pc98/machdep.c Thu Feb 21 15:02:36 2013 (r247096) @@ -80,6 +80,7 @@ __FBSDID("$FreeBSD$"); #include #include #include +#include #include #include #ifdef SMP Modified: user/attilio/vmobj-rwlock/sys/powerpc/aim/machdep.c ============================================================================== --- user/attilio/vmobj-rwlock/sys/powerpc/aim/machdep.c Thu Feb 21 12:52:18 2013 (r247095) +++ user/attilio/vmobj-rwlock/sys/powerpc/aim/machdep.c Thu Feb 21 15:02:36 2013 (r247096) @@ -84,6 +84,7 @@ __FBSDID("$FreeBSD$"); #include #include #include +#include #include #include #include Modified: user/attilio/vmobj-rwlock/sys/powerpc/aim/mmu_oea.c ============================================================================== --- user/attilio/vmobj-rwlock/sys/powerpc/aim/mmu_oea.c Thu Feb 21 12:52:18 2013 (r247095) +++ user/attilio/vmobj-rwlock/sys/powerpc/aim/mmu_oea.c Thu Feb 21 15:02:36 2013 (r247096) @@ -136,7 +136,6 @@ __FBSDID("$FreeBSD$"); #include #include #include -#include #include #include Modified: user/attilio/vmobj-rwlock/sys/powerpc/aim/mmu_oea64.c ============================================================================== --- user/attilio/vmobj-rwlock/sys/powerpc/aim/mmu_oea64.c Thu Feb 21 12:52:18 2013 (r247095) +++ user/attilio/vmobj-rwlock/sys/powerpc/aim/mmu_oea64.c Thu Feb 21 15:02:36 2013 (r247096) @@ -140,7 +140,6 @@ __FBSDID("$FreeBSD$"); #include #include #include -#include #include #include Modified: user/attilio/vmobj-rwlock/sys/powerpc/aim/moea64_native.c ============================================================================== --- user/attilio/vmobj-rwlock/sys/powerpc/aim/moea64_native.c Thu Feb 21 12:52:18 2013 (r247095) +++ user/attilio/vmobj-rwlock/sys/powerpc/aim/moea64_native.c Thu Feb 21 15:02:36 2013 (r247096) @@ -117,7 +117,6 @@ __FBSDID("$FreeBSD$"); #include #include #include -#include #include #include Modified: user/attilio/vmobj-rwlock/sys/powerpc/booke/machdep.c ============================================================================== --- user/attilio/vmobj-rwlock/sys/powerpc/booke/machdep.c Thu Feb 21 12:52:18 2013 (r247095) +++ user/attilio/vmobj-rwlock/sys/powerpc/booke/machdep.c Thu Feb 21 15:02:36 2013 (r247096) @@ -101,6 +101,7 @@ __FBSDID("$FreeBSD$"); #include #include #include +#include #include #include #include Modified: user/attilio/vmobj-rwlock/sys/powerpc/ps3/mmu_ps3.c ============================================================================== --- user/attilio/vmobj-rwlock/sys/powerpc/ps3/mmu_ps3.c Thu Feb 21 12:52:18 2013 (r247095) +++ user/attilio/vmobj-rwlock/sys/powerpc/ps3/mmu_ps3.c Thu Feb 21 15:02:36 2013 (r247096) @@ -45,7 +45,6 @@ __FBSDID("$FreeBSD$"); #include #include #include -#include #include #include Modified: user/attilio/vmobj-rwlock/sys/sparc64/sparc64/machdep.c ============================================================================== --- user/attilio/vmobj-rwlock/sys/sparc64/sparc64/machdep.c Thu Feb 21 12:52:18 2013 (r247095) +++ user/attilio/vmobj-rwlock/sys/sparc64/sparc64/machdep.c Thu Feb 21 15:02:36 2013 (r247096) @@ -65,6 +65,7 @@ __FBSDID("$FreeBSD$"); #include #include #include +#include #include #include #include Modified: user/attilio/vmobj-rwlock/sys/sparc64/sparc64/tsb.c ============================================================================== --- user/attilio/vmobj-rwlock/sys/sparc64/sparc64/tsb.c Thu Feb 21 12:52:18 2013 (r247095) +++ user/attilio/vmobj-rwlock/sys/sparc64/sparc64/tsb.c Thu Feb 21 15:02:36 2013 (r247096) @@ -53,7 +53,6 @@ __FBSDID("$FreeBSD$"); #include #include #include -#include #include #include