Skip site navigation (1)Skip section navigation (2)
Date:      Thu, 24 Jan 2008 17:15:33 +0200 (EET)
From:      Diomidis Spinellis <dds@FreeBSD.org>
To:        FreeBSD-gnats-submit@FreeBSD.org
Subject:   ports/119944: sysutils/fusefs-kmod will not compile under 8-CURRENT
Message-ID:  <200801241515.m0OFFXBP013533@icarian.dmst.aueb.gr>
Resent-Message-ID: <200801241540.m0OFe44i053726@freefall.freebsd.org>

next in thread | raw e-mail | index | archive | help

>Number:         119944
>Category:       ports
>Synopsis:       sysutils/fusefs-kmod will not compile under 8-CURRENT
>Confidential:   no
>Severity:       serious
>Priority:       medium
>Responsible:    freebsd-ports-bugs
>State:          open
>Quarter:        
>Keywords:       
>Date-Required:
>Class:          sw-bug
>Submitter-Id:   current-users
>Arrival-Date:   Thu Jan 24 15:40:04 UTC 2008
>Closed-Date:
>Last-Modified:
>Originator:     Diomidis Spinellis
>Release:        FreeBSD 8.0-CURRENT i386
>Organization:
AUEB
>Environment:
System: FreeBSD icarian.dmst.aueb.gr 8.0-CURRENT FreeBSD 8.0-CURRENT #13: Thu Jan 24 14:21:33 EET 2008 dds@icarian.dmst.aueb.gr:/usr/obj/usr/home/dds/src/fbsd-head/src/sys/ICARIAN i386


>Description:
The compilation is aborted with errors like
fuse_vfsops.c:382:49: error: macro "vn_lock" passed 3 arguments, but takes just 2

>How-To-Repeat:
# cd /usr/ports/sysutils/fusefs-kmod/
# make

>Fix:
Apply the following patch

diff -ru work/fuse4bsd-0.3.9-pre1/fuse_module/fuse_io.c work.ok/fuse4bsd-0.3.9-pre1/fuse_module/fuse_io.c
--- work/fuse4bsd-0.3.9-pre1/fuse_module/fuse_io.c	2008-01-24 17:00:29.000000000 +0200
+++ work.ok/fuse4bsd-0.3.9-pre1/fuse_module/fuse_io.c	2008-01-24 16:28:59.000000000 +0200
@@ -139,7 +139,7 @@
 	struct vnode *vp = fp->f_vnode;
 	int err = 0;
 
-	vn_lock(vp, LK_EXCLUSIVE | LK_RETRY, td);
+	vn_lock(vp, LK_EXCLUSIVE | LK_RETRY);
 
 	ASSERT_VOP_LOCKED__FH(vp);
 	if (_file_is_bad(fp) || ! _file_is_fat(fp)) {
@@ -166,7 +166,7 @@
 	fp->f_nextoff = uio->uio_offset;
 
 out:
-	VOP_UNLOCK(vp, 0, td);
+	VOP_UNLOCK(vp, 0);
 
 	DEBUG("leaving with %d\n", err);
 	return (err);
diff -ru work/fuse4bsd-0.3.9-pre1/fuse_module/fuse_vfsops.c work.ok/fuse4bsd-0.3.9-pre1/fuse_module/fuse_vfsops.c
--- work/fuse4bsd-0.3.9-pre1/fuse_module/fuse_vfsops.c	2008-01-24 17:00:29.000000000 +0200
+++ work.ok/fuse4bsd-0.3.9-pre1/fuse_module/fuse_vfsops.c	2008-01-24 16:26:02.000000000 +0200
@@ -379,7 +379,7 @@
 
 	err = getnewvnode("fuse", mp, &fuse_vnops, &rvp);
 	if (! err) {
-		err = vn_lock(rvp, LK_EXCLUSIVE | LK_RETRY, td);
+		err = vn_lock(rvp, LK_EXCLUSIVE | LK_RETRY);
 #if NEW_VNODES_ADJUSTED_MANUALLY
 		if (err)
 			printf("fuse4bsd: leaking vnode %p\n", rvp);
@@ -407,7 +407,7 @@
 		free(fvdat, M_FUSEVN);
 	        goto out;
 	} else
-		VOP_UNLOCK(rvp, 0, td);
+		VOP_UNLOCK(rvp, 0);
 
 	data->mp = mp;
 	data->mpri = FM_PRIMARY;
@@ -591,7 +591,7 @@
 
 	vp = data->rvp;
 	vref(vp);
-	vn_lock(vp, flags | LK_RETRY, td);
+	vn_lock(vp, flags | LK_RETRY);
 	if (vp->v_type == VNON) {
 		struct vattr va;
 
@@ -817,7 +817,7 @@
 	}
 
 #if NEW_VNODES_ADJUSTED_MANUALLY
-	err = vn_lock(*vpp, myflags, td);
+	err = vn_lock(*vpp, myflags);
 	if (err)
 		printf("fuse4bsd: leaking vnode %p\n", *vpp);
 	else
diff -ru work/fuse4bsd-0.3.9-pre1/fuse_module/fuse_vnops.c work.ok/fuse4bsd-0.3.9-pre1/fuse_module/fuse_vnops.c
--- work/fuse4bsd-0.3.9-pre1/fuse_module/fuse_vnops.c	2008-01-24 17:00:29.000000000 +0200
+++ work.ok/fuse4bsd-0.3.9-pre1/fuse_module/fuse_vnops.c	2008-01-24 16:28:28.000000000 +0200
@@ -1298,12 +1298,12 @@
 				 * If doing dotdot, we unlock dvp for vget time
 				 * to conform lock order regulations.
 				 */
-				VOP_UNLOCK(dvp, 0, td);
+				VOP_UNLOCK(dvp, 0);
 			err = fuse_vget_i(dvp->v_mount, td, nid,
 			                  IFTOVT(fattr->mode), &vp, VG_NORMAL,
 			                  parentid);
 			if (flags & ISDOTDOT)
-				vn_lock(dvp, LK_EXCLUSIVE | LK_RETRY, td);
+				vn_lock(dvp, LK_EXCLUSIVE | LK_RETRY);
 			if (err)
 				goto out;
 			*vpp = vp;
@@ -1568,7 +1568,7 @@
 	cache_attrs(vp, feo);
 
 try_insert:
-	VOP_UNLOCK(vp, 0, td);
+	VOP_UNLOCK(vp, 0);
 	/*
 	 * We can't let the vnode being vput() here, the caller wants
 	 * that do by herself.
@@ -1583,7 +1583,7 @@
 
 #if NEW_VNODES_ADJUSTED_MANUALLY
 	if (! err) {
-		err = vn_lock(vp, LK_EXCLUSIVE | LK_RETRY, td);
+		err = vn_lock(vp, LK_EXCLUSIVE | LK_RETRY);
 		if (err)
 			printf("fuse4bsd: leaking vnode %p\n", vp);
 		else {
@@ -1956,13 +1956,13 @@
 	if (! _file_is_fat(fp))
 		panic("non-fat file passed to close routine");
 
-	vn_lock(vp, LK_EXCLUSIVE | LK_RETRY, td);
+	vn_lock(vp, LK_EXCLUSIVE | LK_RETRY);
 
 	if (_file_is_bad(fp)) {
 		DEBUG2G("fp %p, vnode #%llu: went bad, giving up\n",
 		        fp, VTOILLU(vp));
 /*
-		VOP_UNLOCK(vp, 0, td);
+		VOP_UNLOCK(vp, 0);
 		return (EBADF);
  */
 		goto out;
@@ -2400,7 +2400,7 @@
 	if ((err = getnewvnode("fuse", dvp->v_mount, &fuse_vnops, vpp)))
 		return (err);
 
-	if ((err = vn_lock(*vpp, LK_EXCLUSIVE | LK_RETRY, curthread))) {
+	if ((err = vn_lock(*vpp, LK_EXCLUSIVE | LK_RETRY))) {
 #if NEW_VNODES_ADJUSTED_MANUALLY
 		printf("fuse4bsd: leaking vnode %p\n", *vpp);
 #endif
@@ -2747,7 +2747,7 @@
 	 * No LK_RETRY. See discussion in thread
 	 * http://thread.gmane.org/gmane.os.dragonfly-bsd.kernel/8952/focus=8964
 	 */
-	err = vn_lock(fvp, LK_EXCLUSIVE, td);
+	err = vn_lock(fvp, LK_EXCLUSIVE);
 	if (err)
 		goto out;
 
@@ -2758,7 +2758,7 @@
 		if ((fcnp->cn_namelen == 1 && fcnp->cn_nameptr[0] == '.')
 			|| fdvp == fvp
 			|| ((fcnp->cn_flags | tcnp->cn_flags) & ISDOTDOT)) {
-			VOP_UNLOCK(fvp, 0, td);
+			VOP_UNLOCK(fvp, 0);
 			err = EINVAL;
 			goto out;
 		}
@@ -2776,7 +2776,7 @@
 	 */
 	err = fuse_access_i(fvp, VWRITE, tcnp->cn_cred, tcnp->cn_thread, &facp);
 	fnid = VTOI(fvp);
-	VOP_UNLOCK(fvp, 0, td);
+	VOP_UNLOCK(fvp, 0);
 	if (err)
 		goto out;
 


>Release-Note:
>Audit-Trail:
>Unformatted:



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