Module Name:    src
Committed By:   haad
Date:           Mon Aug 10 22:38:02 UTC 2009

Modified Files:
        src/external/cddl/osnet/dist/uts/common/fs/zfs: arc.c dmu.c
            spa_history.c zfs_dir.c zfs_vfsops.c
        src/external/cddl/osnet/dist/uts/common/fs/zfs/sys: vdev_disk.h
            zfs_znode.h zvol.h

Log Message:
Add some NetBSD fixes which I have forgot to commit during first round.
With these patches I can build solaris and zfs module again.


To generate a diff of this commit:
cvs rdiff -u -r1.2 -r1.3 src/external/cddl/osnet/dist/uts/common/fs/zfs/arc.c \
    src/external/cddl/osnet/dist/uts/common/fs/zfs/zfs_vfsops.c
cvs rdiff -u -r1.1.1.1 -r1.2 \
    src/external/cddl/osnet/dist/uts/common/fs/zfs/dmu.c \
    src/external/cddl/osnet/dist/uts/common/fs/zfs/spa_history.c
cvs rdiff -u -r1.3 -r1.4 \
    src/external/cddl/osnet/dist/uts/common/fs/zfs/zfs_dir.c
cvs rdiff -u -r1.1.1.1 -r1.2 \
    src/external/cddl/osnet/dist/uts/common/fs/zfs/sys/vdev_disk.h \
    src/external/cddl/osnet/dist/uts/common/fs/zfs/sys/zvol.h
cvs rdiff -u -r1.2 -r1.3 \
    src/external/cddl/osnet/dist/uts/common/fs/zfs/sys/zfs_znode.h

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.

Modified files:

Index: src/external/cddl/osnet/dist/uts/common/fs/zfs/arc.c
diff -u src/external/cddl/osnet/dist/uts/common/fs/zfs/arc.c:1.2 src/external/cddl/osnet/dist/uts/common/fs/zfs/arc.c:1.3
--- src/external/cddl/osnet/dist/uts/common/fs/zfs/arc.c:1.2	Fri Aug  7 20:16:45 2009
+++ src/external/cddl/osnet/dist/uts/common/fs/zfs/arc.c	Mon Aug 10 22:38:02 2009
@@ -133,6 +133,42 @@
 #include <sys/callb.h>
 #include <sys/kstat.h>
 
+#ifdef __NetBSD__
+#include <uvm/uvm.h>
+#define	btop(x)		((x) / PAGE_SIZE)
+#define	needfree	(uvmexp.free < uvmexp.freetarg ? uvmexp.freetarg : 0)
+#define	buf_init	arc_buf_init
+#define	freemem		uvmexp.free
+#define	minfree		uvmexp.freemin
+#define	desfree		uvmexp.freetarg
+#define	lotsfree	(desfree * 2)
+#define	availrmem	desfree
+#define	swapfs_minfree	0
+#define	swapfs_reserve	0
+#undef curproc
+#define	curproc		curlwp
+#define	proc_pageout	uvm.pagedaemon_lwp
+
+#define	heap_arena	kernel_map
+#define	VMEM_ALLOC	1
+#define	VMEM_FREE	2
+static inline size_t
+vmem_size(struct vm_map *map, int flag)
+{
+	switch (flag) {
+	case VMEM_ALLOC:
+		return map->size;
+	case VMEM_FREE:
+		return vm_map_max(map) - vm_map_min(map) - map->size;
+	case VMEM_FREE|VMEM_ALLOC:
+		return vm_map_max(map) - vm_map_min(map);
+	default:
+		panic("vmem_size");
+	}
+}
+static void	*zio_arena;
+#endif	/* __NetBSD__ */
+
 static kmutex_t		arc_reclaim_thr_lock;
 static kcondvar_t	arc_reclaim_thr_cv;	/* used to signal reclaim thr */
 static uint8_t		arc_thread_exit;
@@ -3233,10 +3269,8 @@
 	static uint64_t page_load = 0;
 	static uint64_t last_txg = 0;
 
-#if defined(__i386)
 	available_memory =
 	    MIN(available_memory, vmem_size(heap_arena, VMEM_FREE));
-#endif
 	if (available_memory >= zfs_write_limit_max)
 		return (0);
 
Index: src/external/cddl/osnet/dist/uts/common/fs/zfs/zfs_vfsops.c
diff -u src/external/cddl/osnet/dist/uts/common/fs/zfs/zfs_vfsops.c:1.2 src/external/cddl/osnet/dist/uts/common/fs/zfs/zfs_vfsops.c:1.3
--- src/external/cddl/osnet/dist/uts/common/fs/zfs/zfs_vfsops.c:1.2	Fri Aug  7 20:16:45 2009
+++ src/external/cddl/osnet/dist/uts/common/fs/zfs/zfs_vfsops.c	Mon Aug 10 22:38:02 2009
@@ -35,7 +35,6 @@
 #include <sys/mntent.h>
 #include <sys/mount.h>
 #include <sys/cmn_err.h>
-#include "fs/fs_subr.h"
 #include <sys/zfs_znode.h>
 #include <sys/zfs_dir.h>
 #include <sys/zil.h>
@@ -51,11 +50,9 @@
 #include <sys/atomic.h>
 #include <sys/mkdev.h>
 #include <sys/modctl.h>
-#include <sys/refstr.h>
 #include <sys/zfs_ioctl.h>
 #include <sys/zfs_ctldir.h>
 #include <sys/zfs_fuid.h>
-#include <sys/bootconf.h>
 #include <sys/sunddi.h>
 #include <sys/dnlc.h>
 #include <sys/dmu_objset.h>

Index: src/external/cddl/osnet/dist/uts/common/fs/zfs/dmu.c
diff -u src/external/cddl/osnet/dist/uts/common/fs/zfs/dmu.c:1.1.1.1 src/external/cddl/osnet/dist/uts/common/fs/zfs/dmu.c:1.2
--- src/external/cddl/osnet/dist/uts/common/fs/zfs/dmu.c:1.1.1.1	Fri Aug  7 18:32:54 2009
+++ src/external/cddl/osnet/dist/uts/common/fs/zfs/dmu.c	Mon Aug 10 22:38:02 2009
@@ -751,6 +751,7 @@
 	return (err);
 }
 
+#ifndef __NetBSD__
 int
 dmu_write_pages(objset_t *os, uint64_t object, uint64_t offset, uint64_t size,
     page_t *pp, dmu_tx_t *tx)
@@ -808,6 +809,7 @@
 	dmu_buf_rele_array(dbp, numbufs, FTAG);
 	return (err);
 }
+#endif  /* __NetBSD__ */
 #endif
 
 typedef struct {
Index: src/external/cddl/osnet/dist/uts/common/fs/zfs/spa_history.c
diff -u src/external/cddl/osnet/dist/uts/common/fs/zfs/spa_history.c:1.1.1.1 src/external/cddl/osnet/dist/uts/common/fs/zfs/spa_history.c:1.2
--- src/external/cddl/osnet/dist/uts/common/fs/zfs/spa_history.c:1.1.1.1	Fri Aug  7 18:33:07 2009
+++ src/external/cddl/osnet/dist/uts/common/fs/zfs/spa_history.c	Mon Aug 10 22:38:02 2009
@@ -178,7 +178,7 @@
 static char *
 spa_history_zone()
 {
-#ifdef _KERNEL
+#if defined(_KERNEL) && !defined(__NetBSD__)
 	return (curproc->p_zone->zone_name);
 #else
 	return ("global");

Index: src/external/cddl/osnet/dist/uts/common/fs/zfs/zfs_dir.c
diff -u src/external/cddl/osnet/dist/uts/common/fs/zfs/zfs_dir.c:1.3 src/external/cddl/osnet/dist/uts/common/fs/zfs/zfs_dir.c:1.4
--- src/external/cddl/osnet/dist/uts/common/fs/zfs/zfs_dir.c:1.3	Fri Aug  7 22:46:04 2009
+++ src/external/cddl/osnet/dist/uts/common/fs/zfs/zfs_dir.c	Mon Aug 10 22:38:02 2009
@@ -46,7 +46,6 @@
 #include <sys/zfs_dir.h>
 #include <sys/zfs_acl.h>
 #include <sys/fs/zfs.h>
-#include "fs/fs_subr.h"
 #include <sys/zap.h>
 #include <sys/dmu.h>
 #include <sys/atomic.h>
@@ -777,11 +776,10 @@
 			return (EEXIST);
 		}
 		if (zp->z_phys->zp_links <= zp_is_dir) {
-			zfs_panic_recover("zfs: link count on %s is %u, "
-			    "should be at least %u",
-			    zp->z_vnode->v_path ? zp->z_vnode->v_path :
-			    "<unknown>", (int)zp->z_phys->zp_links,
-			    zp_is_dir + 1);
+			zfs_panic_recover("zfs: link count on vnode %p is %u, "
+				"should be at least %u",
+				zp->z_vnode, (int)zp->z_phys->zp_links,
+		                zp_is_dir + 1);
 			zp->z_phys->zp_links = zp_is_dir + 1;
 		}
 		if (--zp->z_phys->zp_links == zp_is_dir) {

Index: src/external/cddl/osnet/dist/uts/common/fs/zfs/sys/vdev_disk.h
diff -u src/external/cddl/osnet/dist/uts/common/fs/zfs/sys/vdev_disk.h:1.1.1.1 src/external/cddl/osnet/dist/uts/common/fs/zfs/sys/vdev_disk.h:1.2
--- src/external/cddl/osnet/dist/uts/common/fs/zfs/sys/vdev_disk.h:1.1.1.1	Fri Aug  7 18:33:41 2009
+++ src/external/cddl/osnet/dist/uts/common/fs/zfs/sys/vdev_disk.h	Mon Aug 10 22:38:02 2009
@@ -41,9 +41,9 @@
 #endif
 
 typedef struct vdev_disk {
-	ddi_devid_t	vd_devid;
-	char		*vd_minor;
-	ldi_handle_t	vd_lh;
+	char            *vd_minor;
+	vnode_t         *vd_vn;
+	struct workqueue *vd_wq;
 } vdev_disk_t;
 
 #ifdef _KERNEL
Index: src/external/cddl/osnet/dist/uts/common/fs/zfs/sys/zvol.h
diff -u src/external/cddl/osnet/dist/uts/common/fs/zfs/sys/zvol.h:1.1.1.1 src/external/cddl/osnet/dist/uts/common/fs/zfs/sys/zvol.h:1.2
--- src/external/cddl/osnet/dist/uts/common/fs/zfs/sys/zvol.h:1.1.1.1	Fri Aug  7 18:33:45 2009
+++ src/external/cddl/osnet/dist/uts/common/fs/zfs/sys/zvol.h	Mon Aug 10 22:38:02 2009
@@ -51,7 +51,7 @@
 extern int zvol_open(dev_t *devp, int flag, int otyp, cred_t *cr);
 extern int zvol_dump(dev_t dev, caddr_t addr, daddr_t offset, int nblocks);
 extern int zvol_close(dev_t dev, int flag, int otyp, cred_t *cr);
-extern int zvol_strategy(buf_t *bp);
+extern void zvol_strategy(buf_t *bp);
 extern int zvol_read(dev_t dev, uio_t *uiop, cred_t *cr);
 extern int zvol_write(dev_t dev, uio_t *uiop, cred_t *cr);
 extern int zvol_aread(dev_t dev, struct aio_req *aio, cred_t *cr);

Index: src/external/cddl/osnet/dist/uts/common/fs/zfs/sys/zfs_znode.h
diff -u src/external/cddl/osnet/dist/uts/common/fs/zfs/sys/zfs_znode.h:1.2 src/external/cddl/osnet/dist/uts/common/fs/zfs/sys/zfs_znode.h:1.3
--- src/external/cddl/osnet/dist/uts/common/fs/zfs/sys/zfs_znode.h:1.2	Fri Aug  7 20:16:45 2009
+++ src/external/cddl/osnet/dist/uts/common/fs/zfs/sys/zfs_znode.h	Mon Aug 10 22:38:02 2009
@@ -122,7 +122,9 @@
  * Convert mode bits (zp_mode) to BSD-style DT_* values for storing in
  * the directory entries.
  */
+#ifndef __NetBSD__
 #define	IFTODT(mode) (((mode) & S_IFMT) >> 12)
+#endif
 
 /*
  * The directory entry has the type (currently unused on Solaris) in the

Reply via email to