Skip site navigation (1)Skip section navigation (2)
Date:      Thu, 21 Feb 2013 15:02:37 +0000 (UTC)
From:      Attilio Rao <attilio@FreeBSD.org>
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...
Message-ID:  <201302211502.r1LF2b7j059082@svn.freebsd.org>

next in thread | raw e-mail | index | archive | help
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 <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>

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 <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>

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 <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>

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 <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>

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 <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>

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 <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>

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 <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>

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 <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>

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 <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>

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 <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>

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 <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);
+}

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 <sys/rwlock.h>
+
+#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 <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. */

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 <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, 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 <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>

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 <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>

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 <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>

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 <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>

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 <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>

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 <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>

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 <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>

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 <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>

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 <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>

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 <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>

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 <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>

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 <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>

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 <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

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 <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>

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 <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>

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 <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>

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 <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>

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 <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>

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 <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>

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 <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>

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 <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>



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201302211502.r1LF2b7j059082>