PATCH: Arla 0.90 on OpenBSD 4.4 (and 4.3)

Bo Brantén bosse at acc.umu.se
Sat Nov 1 13:46:46 CET 2008


Here is a patch for Arla 0.90 on OpenBSD 4.4 and 4.3.

diff -uprN arla-0.90/nnpfs/bsd/nnpfs/nnpfs_node.h arla-0.90-new/nnpfs/bsd/nnpfs/nnpfs_node.h
--- arla-0.90/nnpfs/bsd/nnpfs/nnpfs_node.h	2006-10-24 18:33:19.000000000 +0200
+++ arla-0.90-new/nnpfs/bsd/nnpfs/nnpfs_node.h	2008-10-22 22:53:28.000000000 +0200
@@ -114,7 +114,7 @@ typedef struct lock nnpfs_vnode_lock;
  #else

  #define nnpfs_vrele(vp) vrele(vp)
-#define nnpfs_vrecycle(vp, foo, bar) vrecycle(vp, foo, bar)
+#define nnpfs_vrecycle(vp, foo, bar) vrecycle(vp, bar)
  #define nnpfs_vput(vp) vput(vp)
  #define nnpfs_vref(vp) VREF(vp)
  #define nnpfs_vletgo(vn) nnpfs_vrele(vn)
diff -uprN arla-0.90/nnpfs/bsd/nnpfs_common-bsd.c arla-0.90-new/nnpfs/bsd/nnpfs_common-bsd.c
--- arla-0.90/nnpfs/bsd/nnpfs_common-bsd.c	2006-10-24 18:33:02.000000000 +0200
+++ arla-0.90-new/nnpfs/bsd/nnpfs_common-bsd.c	2008-11-01 14:59:33.000000000 +0100
@@ -58,7 +58,11 @@ nnpfs_alloc(u_int size, nnpfs_malloc_typ
      NNPFSDEB(XDEBMEM, ("nnpfs_alloc: nnpfs_allocs - nnpfs_frees %d\n",
  		     nnpfs_allocs - nnpfs_frees));

+#if (defined(__OpenBSD__) && OpenBSD >= 200811)
+    ret = malloc(size, type, M_WAITOK);
+#else
      MALLOC(ret, void *, size, type, M_WAITOK);
+#endif
      return ret;
  }

@@ -66,7 +70,11 @@ void
  nnpfs_free(void *ptr, u_int size, nnpfs_malloc_type type)
  {
      nnpfs_frees++;
+#if (defined(__OpenBSD__) && OpenBSD >= 200811)
+    free(ptr, type);
+#else
      FREE(ptr, type);
+#endif
  }

  #endif /* NNPFS_DEBUG */
diff -uprN arla-0.90/nnpfs/bsd/nnpfs_dev-openbsd.c arla-0.90-new/nnpfs/bsd/nnpfs_dev-openbsd.c
--- arla-0.90/nnpfs/bsd/nnpfs_dev-openbsd.c	2005-11-22 19:20:10.000000000 +0100
+++ arla-0.90-new/nnpfs/bsd/nnpfs_dev-openbsd.c	2008-10-24 17:43:40.000000000 +0200
@@ -54,6 +54,19 @@ nnpfs_dev_unlock(struct nnpfs *chan)
  }

  int
+nnpfs_dev_msleep(struct nnpfs *chan, caddr_t waitobj, int flags, const char *msg)
+{
+    int ret;
+    NNPFSDEB(XDEBDEV, ("nnpfs_dev_msleep %p %x %s\n", waitobj, flags, msg));
+
+    simple_unlock(&chan->dev_lock);
+    ret = nnpfs_tsleep(waitobj, flags, msg);
+    simple_lock(&chan->dev_lock);
+
+    return ret;
+}
+
+int
  nnpfs_dev_initlock(struct nnpfs *chan)
  {
      simple_lock_init(&chan->dev_lock);
diff -uprN arla-0.90/nnpfs/bsd/nnpfs_vfsops-openbsd.c arla-0.90-new/nnpfs/bsd/nnpfs_vfsops-openbsd.c
--- arla-0.90/nnpfs/bsd/nnpfs_vfsops-openbsd.c	2005-10-28 16:33:39.000000000 +0200
+++ arla-0.90-new/nnpfs/bsd/nnpfs_vfsops-openbsd.c	2008-11-01 15:02:14.000000000 +0100
@@ -112,7 +112,9 @@ static struct vfsconf nnpfs_vfc = {
      0,
      0,
      0,
+#if (OpenBSD < 200811)
      NULL,
+#endif
      NULL
  };

diff -uprN arla-0.90/nnpfs/bsd/nnpfs_vnodeops-bsd.c arla-0.90-new/nnpfs/bsd/nnpfs_vnodeops-bsd.c
--- arla-0.90/nnpfs/bsd/nnpfs_vnodeops-bsd.c	2006-10-31 13:40:06.000000000 +0100
+++ arla-0.90-new/nnpfs/bsd/nnpfs_vnodeops-bsd.c	2008-11-01 15:04:32.000000000 +0100
@@ -576,8 +576,12 @@ nnpfs_readdir(struct vop_readdir_args *
  	    ncookies++;
  	}

+#if (defined(__OpenBSD__) && OpenBSD >= 200811)
+	cookies = malloc(ncookies * sizeof(nnpfs_cookie_t), M_TEMP, M_WAITOK);
+#else
  	MALLOC(cookies, nnpfs_cookie_t *, ncookies * sizeof(nnpfs_cookie_t),
  	       M_TEMP, M_WAITOK);
+#endif
  	for (dp = dp_start, cookiep = cookies;
  	     dp < dp_end;
  	     dp = (const struct dirent *)((const char *) dp + dp->d_reclen)) {
@@ -786,7 +790,7 @@ nnpfs_lock(struct vop_lock_args * ap)
      ret = lockmgr(l, flags, &vp->v_interlock, NNPFS_AP_PROC(ap));
  #endif
  #else
-    ret = lockmgr(l, flags, &vp->v_interlock);
+    ret = lockmgr(l, flags, NULL);
  #endif
  #else
      ret = debuglockmgr(l, flags, &vp->v_interlock, NNPFS_AP_PROC(ap),
@@ -835,7 +839,7 @@ nnpfs_unlock(struct vop_unlock_args * ap
      ret = lockmgr (l, flags | LK_RELEASE, &vp->v_interlock, NNPFS_AP_PROC(ap));
  #endif
  #else
-    ret = lockmgr (l, flags | LK_RELEASE, &vp->v_interlock);
+    ret = lockmgr (l, flags | LK_RELEASE, NULL);
  #endif
  #else
      ret = debuglockmgr (l, flags | LK_RELEASE, &vp->v_interlock, NNPFS_AP_PROC(ap),


More information about the Arla-drinkers mailing list