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 #include @@ -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"));