ports/134876: sysutils/fusefs-kmod: Fix build after recent VFS changes on -CURRENT

Tom McLaughlin tmclaugh at FreeBSD.org
Sat May 23 18:00:02 UTC 2009


>Number:         134876
>Category:       ports
>Synopsis:       sysutils/fusefs-kmod: Fix build after recent VFS changes on -CURRENT
>Confidential:   no
>Severity:       non-critical
>Priority:       low
>Responsible:    freebsd-ports-bugs
>State:          open
>Quarter:        
>Keywords:       
>Date-Required:
>Class:          sw-bug
>Submitter-Id:   current-users
>Arrival-Date:   Sat May 23 18:00:02 UTC 2009
>Closed-Date:
>Last-Modified:
>Originator:     Tom McLaughlin
>Release:        FreeBSD 7.1-PRERELEASE i386
>Organization:
>Environment:
System: FreeBSD freefall.freebsd.org 7.1-PRERELEASE FreeBSD 7.1-PRERELEASE #36: Mon Dec 29 15:15:30 UTC 2008 simon at freefall.freebsd.org:/usr/src/sys/i386/compile/FREEFALL i386


	
>Description:
	Port fails to build on -CURRENT after revision 191990 [1] due to
	changes in the OS vfs layer.

	[1] http://svn.freebsd.org/viewvc/base?view=revision&revision=191990
>How-To-Repeat:
	Build port on -CURRENT after revision 191990.
>Fix:

	

--- fusefs-kmod.diff begins here ---
Index: files/patch-fuse_module__fuse_vfsops.c
===================================================================
RCS file: /ncvs/ports/sysutils/fusefs-kmod/files/patch-fuse_module__fuse_vfsops.c,v
retrieving revision 1.2
diff -u -r1.2 patch-fuse_module__fuse_vfsops.c
--- files/patch-fuse_module__fuse_vfsops.c	26 Sep 2008 18:26:35 -0000	1.2
+++ files/patch-fuse_module__fuse_vfsops.c	23 May 2009 07:36:57 -0000
@@ -1,5 +1,5 @@
 --- fuse_module/fuse_vfsops.c.orig	2008-02-05 00:25:57.000000000 -0500
-+++ fuse_module/fuse_vfsops.c	2008-09-26 12:53:33.000000000 -0400
++++ fuse_module/fuse_vfsops.c	2009-05-23 03:35:27.924515262 -0400
 @@ -18,6 +18,7 @@
  #include <sys/namei.h>
  #include <sys/mount.h>
@@ -8,7 +8,94 @@
  
  #include "fuse.h"
  #include "fuse_session.h"
-@@ -667,7 +668,11 @@
+@@ -190,6 +191,7 @@
+  *************/
+ 
+ static __inline void
++
+ fuse_send_init(struct fuse_data *data, struct thread *td)
+ {
+ #if FUSE_KERNELABI_GEQ(7, 5)
+@@ -213,7 +215,11 @@
+  * Mount system call
+  */
+ static int
++#if __FreeBSD_version >= 800087
++fuse_mount(struct mount *mp)
++#else
+ fuse_mount(struct mount *mp, struct thread *td)
++#endif
+ {
+ 	int err = 0;
+ 	size_t len;
+@@ -228,6 +234,10 @@
+ 	unsigned max_read = ~0;
+ 	struct vnode *rvp;
+ 	struct fuse_vnode_data *fvdat;
++#if __FreeBSD_version >= 800087
++	struct thread *td;
++	td = curthread;
++#endif
+ 
+ 	GIANT_REQUIRED;
+ 	KASSERT(fuse_useco >= 0,
+@@ -529,12 +539,20 @@
+  * Unmount system call
+  */
+ static int
++#if __FreeBSD_version >= 800087
++fuse_unmount(struct mount *mp, int mntflags)
++#else
+ fuse_unmount(struct mount *mp, int mntflags, struct thread *td)
++#endif
+ {
+ 	int flags = 0, err = 0;
+ 	struct fuse_data *data;
+ 	struct fuse_secondary_data *fsdat = NULL;
+ 	struct cdev *fdev;
++#if __FreeBSD_version >= 800087
++	struct thread *td;
++	td = curthread;
++#endif
+ 
+ 	GIANT_REQUIRED;
+ 
+@@ -633,13 +651,21 @@
+ 
+ /* stolen from portalfs */
+ static int
++#if __FreeBSD_version >= 800087
++fuse_root(struct mount *mp, int flags, struct vnode **vpp)
++#else
+ fuse_root(struct mount *mp, int flags, struct vnode **vpp, struct thread *td)
++#endif
+ {
+ 	/*
+ 	 * Return locked reference to root.
+ 	 */
+ 	struct fuse_data *data = fusefs_get_data(mp);
+ 	struct vnode *vp;
++#if __FreeBSD_version >= 800087
++	struct thread *td;
++	td = curthread;
++#endif
+ 
+ 	DEBUG2G("mp %p: %s\n", mp, mp->mnt_stat.f_mntfromname);
+ 
+@@ -650,7 +676,11 @@
+ 		data = fsdat->master;
+ 		sx_slock(&data->mhierlock);
+ 		if (data->mpri == FM_PRIMARY)
+-			err = fuse_root(data->mp, flags, vpp, td);
++#if __FreeBSD_version >= 800087
++			err = fuse_root(data->mp, flags, vpp);
++#else
++			err = fuse_root(data->mp, flags, vpp, rd);
++#endif
+ 		else
+ 			err = ENXIO;
+ 		sx_sunlock(&data->mhierlock);
+@@ -667,7 +697,11 @@
  	if (vp->v_type == VNON) {
  		struct vattr va;
  
@@ -21,3 +108,50 @@
  	}
  	*vpp = vp;
  #if _DEBUG2G
+@@ -678,12 +712,20 @@
+ }
+ 
+ static int
++#if __FreeBSD_version >= 800087
++fuse_statfs(struct mount *mp, struct statfs *sbp)
++#else
+ fuse_statfs(struct mount *mp, struct statfs *sbp, struct thread *td)
++#endif
+ {
+ 	struct fuse_dispatcher fdi;
+ 	struct fuse_statfs_out *fsfo;
+ 	struct fuse_data *data;
+-	int err = 0;	
++	int err = 0;
++#if __FreeBSD_version >= 800087
++	struct thread *td;
++	td = curthread;
++#endif
+ 
+ 	DEBUG2G("mp %p: %s\n", mp, mp->mnt_stat.f_mntfromname);
+ 	data = fusefs_get_data(mp);
+@@ -696,7 +738,11 @@
+ 
+ 		sx_slock(&data->mhierlock);
+ 		if (data->mpri == FM_PRIMARY)
+-			err = fuse_statfs(data->mp, sbp, td);
++#if __FreeBSD_version >= 800087
++			err = fuse_statfs(data->mp, sbp);
++#else
++			err = fuse_statfs(data->mp, sbp, tb);
++#endif
+ 		else
+ 			err = ENXIO;
+ 		sx_sunlock(&data->mhierlock);
+@@ -794,7 +840,11 @@
+ 	if (nodeid == FUSE_ROOT_ID) {
+ 		if (parentid != FUSE_NULL_ID)
+ 			return (ENOENT);
++#if __FreeBSD_version >= 800087
++		err = VFS_ROOT(mp, myflags, vpp);
++#else
+ 		err = VFS_ROOT(mp, myflags, vpp, td);
++#endif
+ 		if (err)
+ 			return (err);
+ 		KASSERT(*vpp, ("we neither err'd nor found the root node"));
--- fusefs-kmod.diff ends here ---


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



More information about the freebsd-ports-bugs mailing list