PATCH: Arla 0.90 on OpenBSD 4.4 (and 4.3)

Bo Brantén <[email protected]>
Newsgroups gmane.comp.file-systems.arla.general
Message-ID <[email protected]>
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),
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.