Date: Thu, 8 Sep 2011 07:40:13 GMT From: Ivan Klymenko <fidaj@ukr.net> To: freebsd-ports-bugs@FreeBSD.org Subject: Re: ports/159361: sysutils/fusefs-kmod doesn't compile Message-ID: <201109080740.p887eDs3075904@freefall.freebsd.org>
next in thread | raw e-mail | index | archive | help
The following reply was made to PR ports/159361; it has been noted by GNATS. From: Ivan Klymenko <fidaj@ukr.net> To: bug-followup@FreeBSD.org, gobledb@gmail.com Cc: Subject: Re: ports/159361: sysutils/fusefs-kmod doesn't compile Date: Thu, 8 Sep 2011 10:33:59 +0300 --MP_/aB0fDSKFXqKv0=aPuSu0lDI Content-Type: text/plain; charset=US-ASCII Content-Transfer-Encoding: 7bit Content-Disposition: inline --- fuse_module/fuse_vfsops.c.orig 2008-02-05 07:25:57.000000000 +0200 +++ fuse_module/fuse_vfsops.c 2011-09-08 10:27:43.000000000 +0300 @@ -18,6 +18,7 @@ #include <sys/namei.h> #include <sys/mount.h> #include <sys/sysctl.h> +#include <sys/fcntl.h> #include "fuse.h" #include "fuse_session.h" @@ -213,8 +214,14 @@ * Mount system call */ static int +#if VFSOPS_TAKES_THREAD fuse_mount(struct mount *mp, struct thread *td) { +#else +fuse_mount(struct mount *mp) +{ + struct thread *td = curthread; +#endif int err = 0; size_t len; char *fspec, *subtype = NULL; @@ -224,7 +231,7 @@ struct cdev *fdev; struct sx *slock; struct fuse_data *data; - int mntopts = 0, __mntopts = 0, max_read_set = 0, secondary = 0; + uint64_t mntopts = 0, __mntopts = 0, max_read_set = 0, secondary = 0; unsigned max_read = ~0; struct vnode *rvp; struct fuse_vnode_data *fvdat; @@ -529,8 +536,14 @@ * Unmount system call */ static int +#if VFSOPS_TAKES_THREAD fuse_unmount(struct mount *mp, int mntflags, struct thread *td) { +#else +fuse_unmount(struct mount *mp, int mntflags) +{ + struct thread *td = curthread; +#endif int flags = 0, err = 0; struct fuse_data *data; struct fuse_secondary_data *fsdat = NULL; @@ -633,8 +646,14 @@ /* stolen from portalfs */ static int +#if VFSOPS_TAKES_THREAD fuse_root(struct mount *mp, int flags, struct vnode **vpp, struct thread *td) { +#else +fuse_root(struct mount *mp, int flags, struct vnode **vpp) +{ + struct thread *td = curthread; +#endif /* * Return locked reference to root. */ @@ -650,7 +669,11 @@ data = fsdat->master; sx_slock(&data->mhierlock); if (data->mpri == FM_PRIMARY) - err = fuse_root(data->mp, flags, vpp, td); + err = fuse_root(data->mp, flags, vpp +#if VFSOPS_TAKES_THREAD + , td +#endif + ); else err = ENXIO; sx_sunlock(&data->mhierlock); @@ -667,7 +690,11 @@ if (vp->v_type == VNON) { struct vattr va; - (void)VOP_GETATTR(vp, &va, td->td_ucred, td); + (void)VOP_GETATTR(vp, &va, td->td_ucred +#if VOP_GETATTR_TAKES_THREAD + , td +#endif + ); } *vpp = vp; #if _DEBUG2G @@ -678,8 +705,14 @@ } static int +#if VFSOPS_TAKES_THREAD fuse_statfs(struct mount *mp, struct statfs *sbp, struct thread *td) { +#else +fuse_statfs(struct mount *mp, struct statfs *sbp) +{ + struct thread *td = curthread; +#endif struct fuse_dispatcher fdi; struct fuse_statfs_out *fsfo; struct fuse_data *data; @@ -696,7 +729,11 @@ sx_slock(&data->mhierlock); if (data->mpri == FM_PRIMARY) - err = fuse_statfs(data->mp, sbp, td); + err = fuse_statfs(data->mp, sbp +#if VFSOPS_TAKES_THREAD + , td +#endif + ); else err = ENXIO; sx_sunlock(&data->mhierlock); @@ -794,7 +831,11 @@ if (nodeid == FUSE_ROOT_ID) { if (parentid != FUSE_NULL_ID) return (ENOENT); - err = VFS_ROOT(mp, myflags, vpp, td); + err = VFS_ROOT(mp, myflags, vpp +#if VFSOPS_TAKES_THREAD + , td +#endif + ); if (err) return (err); KASSERT(*vpp, ("we neither err'd nor found the root node")); Please update your port. Thanks! --MP_/aB0fDSKFXqKv0=aPuSu0lDI Content-Type: text/plain Content-Transfer-Encoding: 7bit Content-Disposition: attachment; filename=patch-fuse_module__fuse_vfsops.c.txt --- fuse_module/fuse_vfsops.c.orig 2008-02-05 07:25:57.000000000 +0200 +++ fuse_module/fuse_vfsops.c 2011-09-08 10:27:43.000000000 +0300 @@ -18,6 +18,7 @@ #include <sys/namei.h> #include <sys/mount.h> #include <sys/sysctl.h> +#include <sys/fcntl.h> #include "fuse.h" #include "fuse_session.h" @@ -213,8 +214,14 @@ * Mount system call */ static int +#if VFSOPS_TAKES_THREAD fuse_mount(struct mount *mp, struct thread *td) { +#else +fuse_mount(struct mount *mp) +{ + struct thread *td = curthread; +#endif int err = 0; size_t len; char *fspec, *subtype = NULL; @@ -224,7 +231,7 @@ struct cdev *fdev; struct sx *slock; struct fuse_data *data; - int mntopts = 0, __mntopts = 0, max_read_set = 0, secondary = 0; + uint64_t mntopts = 0, __mntopts = 0, max_read_set = 0, secondary = 0; unsigned max_read = ~0; struct vnode *rvp; struct fuse_vnode_data *fvdat; @@ -529,8 +536,14 @@ * Unmount system call */ static int +#if VFSOPS_TAKES_THREAD fuse_unmount(struct mount *mp, int mntflags, struct thread *td) { +#else +fuse_unmount(struct mount *mp, int mntflags) +{ + struct thread *td = curthread; +#endif int flags = 0, err = 0; struct fuse_data *data; struct fuse_secondary_data *fsdat = NULL; @@ -633,8 +646,14 @@ /* stolen from portalfs */ static int +#if VFSOPS_TAKES_THREAD fuse_root(struct mount *mp, int flags, struct vnode **vpp, struct thread *td) { +#else +fuse_root(struct mount *mp, int flags, struct vnode **vpp) +{ + struct thread *td = curthread; +#endif /* * Return locked reference to root. */ @@ -650,7 +669,11 @@ data = fsdat->master; sx_slock(&data->mhierlock); if (data->mpri == FM_PRIMARY) - err = fuse_root(data->mp, flags, vpp, td); + err = fuse_root(data->mp, flags, vpp +#if VFSOPS_TAKES_THREAD + , td +#endif + ); else err = ENXIO; sx_sunlock(&data->mhierlock); @@ -667,7 +690,11 @@ if (vp->v_type == VNON) { struct vattr va; - (void)VOP_GETATTR(vp, &va, td->td_ucred, td); + (void)VOP_GETATTR(vp, &va, td->td_ucred +#if VOP_GETATTR_TAKES_THREAD + , td +#endif + ); } *vpp = vp; #if _DEBUG2G @@ -678,8 +705,14 @@ } static int +#if VFSOPS_TAKES_THREAD fuse_statfs(struct mount *mp, struct statfs *sbp, struct thread *td) { +#else +fuse_statfs(struct mount *mp, struct statfs *sbp) +{ + struct thread *td = curthread; +#endif struct fuse_dispatcher fdi; struct fuse_statfs_out *fsfo; struct fuse_data *data; @@ -696,7 +729,11 @@ sx_slock(&data->mhierlock); if (data->mpri == FM_PRIMARY) - err = fuse_statfs(data->mp, sbp, td); + err = fuse_statfs(data->mp, sbp +#if VFSOPS_TAKES_THREAD + , td +#endif + ); else err = ENXIO; sx_sunlock(&data->mhierlock); @@ -794,7 +831,11 @@ if (nodeid == FUSE_ROOT_ID) { if (parentid != FUSE_NULL_ID) return (ENOENT); - err = VFS_ROOT(mp, myflags, vpp, td); + err = VFS_ROOT(mp, myflags, vpp +#if VFSOPS_TAKES_THREAD + , td +#endif + ); if (err) return (err); KASSERT(*vpp, ("we neither err'd nor found the root node")); --MP_/aB0fDSKFXqKv0=aPuSu0lDI--
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201109080740.p887eDs3075904>