Date: Sun, 16 Jul 2006 14:57:17 -0400 From: "Anish Mistry" <amistry@am-productions.biz> To: "FreeBSD gnats submit" <FreeBSD-gnats-submit@FreeBSD.org> Subject: ports/100403: Fix sysutils/fusefs-kmod build on CURRENT Message-ID: <1153076237.60156@bigguy.am-productions.biz> Resent-Message-ID: <200607161900.k6GJ0WLE081114@freefall.freebsd.org>
next in thread | raw e-mail | index | archive | help
>Number: 100403 >Category: ports >Synopsis: Fix sysutils/fusefs-kmod build on CURRENT >Confidential: no >Severity: non-critical >Priority: medium >Responsible: freebsd-ports-bugs >State: open >Quarter: >Keywords: >Date-Required: >Class: maintainer-update >Submitter-Id: current-users >Arrival-Date: Sun Jul 16 19:00:31 GMT 2006 >Closed-Date: >Last-Modified: >Originator: Anish Mistry >Release: FreeBSD 6.1-RELEASE-p1 i386 >Organization: AM Productions >Environment: System: FreeBSD 6.1-RELEASE-p1 #0: Thu Jun 1 21:16:20 EDT 2006 amistry@bigguy.am-productions.biz:/usr/obj/usr/src/sys/BIGGUY >Description: Fix the build on CURRENT. The #if/#ifdef usage was not correct. Since there won't be another release for at least the next few weeks, roll in a locking fix for the .. lookup. >How-To-Repeat: >Fix: --- fusefs-kmod-buildfix.patch begins here --- diff -ruN fusefs-kmod.orig/Makefile fusefs-kmod/Makefile --- fusefs-kmod.orig/Makefile Sun Jul 16 13:50:35 2006 +++ fusefs-kmod/Makefile Sun Jul 16 14:29:10 2006 @@ -7,7 +7,7 @@ PORTNAME= fusefs PORTVERSION= 0.3.0 -PORTREVISION= 1 +PORTREVISION= 2 CATEGORIES= sysutils MASTER_SITES= http://fuse4bsd.creo.hu/downloads/ \ http://am-productions.biz/docs/ diff -ruN fusefs-kmod.orig/files/patch-fuse_module_fmaster.c fusefs-kmod/files/patch-fuse_module_fmaster.c --- fusefs-kmod.orig/files/patch-fuse_module_fmaster.c Wed Dec 31 19:00:00 1969 +++ fusefs-kmod/files/patch-fuse_module_fmaster.c Sun Jul 16 14:11:42 2006 @@ -0,0 +1,29 @@ +--- fuse_module/fmaster.c Mon Jun 19 22:10:26 2006 +0200 ++++ fuse_module/fmaster.c Mon Jun 19 22:23:08 2006 +0200 +@@ -506,22 +506,22 @@ fuse_response_prettyprint(enum fuse_opco + case FUSE_FSYNCDIR: + //pp_buf(fresp); + break; +-#if FUSE_HAS_GETLK ++#ifdef FUSE_HAS_GETLK + case FUSE_GETLK: + panic("FUSE_GETLK implementor has forgotten to define a response body format check"); + break; + #endif +-#if FUSE_HAS_SETLK ++#ifdef FUSE_HAS_SETLK + case FUSE_SETLK: + panic("FUSE_SETLK implementor has forgotten to define a response body format check"); + break; + #endif +-#if FUSE_HAS_SETLKW ++#ifdef FUSE_HAS_SETLKW + case FUSE_SETLKW: + panic("FUSE_SETLKW implementor has forgotten to define a response body format check"); + break; + #endif +-#if FUSE_HAS_ACCESS ++#ifdef FUSE_HAS_ACCESS + case FUSE_ACCESS: + break; + #endif \ No newline at end of file diff -ruN fusefs-kmod.orig/files/patch-fuse_module_fuse.c fusefs-kmod/files/patch-fuse_module_fuse.c --- fusefs-kmod.orig/files/patch-fuse_module_fuse.c Wed Dec 31 19:00:00 1969 +++ fusefs-kmod/files/patch-fuse_module_fuse.c Sun Jul 16 14:47:00 2006 @@ -0,0 +1,310 @@ +--- fuse_module/fuse.c.orig Fri Feb 10 17:31:53 2006 ++++ fuse_module/fuse.c Sun Jul 16 14:48:43 2006 +@@ -75,7 +75,7 @@ + }; + + +-#if USE_OLD_CLONEHANDLER_API ++#ifdef USE_OLD_CLONEHANDLER_API + static void fusedev_clone(void *arg, char *name, int namelen, struct cdev **dev); + #else + static void fusedev_clone(void *arg, struct ucred *cred, char *name, int namelen, struct cdev **dev); +@@ -120,7 +120,7 @@ + __static void fuse_insert_message(struct fuse_ticket *tick); + __static fuse_handler_t fuse_standard_handler; + static fuse_handler_t fuse_fsync_handler; +-#if FUSE_HAS_CREATE ++#ifdef FUSE_HAS_CREATE + static fuse_handler_t fuse_forgetful_handler; + #endif + +@@ -852,27 +852,27 @@ + case FUSE_FSYNCDIR: + err = blen == 0 ? 0 : EINVAL; + break; +-#if FUSE_HAS_GETLK ++#ifdef FUSE_HAS_GETLK + case FUSE_GETLK: + panic("FUSE_GETLK implementor has forgotten to define a response body format check"); + break; + #endif +-#if FUSE_HAS_SETLK ++#ifdef FUSE_HAS_SETLK + case FUSE_SETLK: + panic("FUSE_SETLK implementor has forgotten to define a response body format check"); + break; + #endif +-#if FUSE_HAS_SETLKW ++#ifdef FUSE_HAS_SETLKW + case FUSE_SETLKW: + panic("FUSE_SETLKW implementor has forgotten to define a response body format check"); + break; + #endif +-#if FUSE_HAS_ACCESS ++#ifdef FUSE_HAS_ACCESS + case FUSE_ACCESS: + err = blen == 0 ? 0 : EINVAL; + break; + #endif +-#if FUSE_HAS_CREATE ++#ifdef FUSE_HAS_CREATE + case FUSE_CREATE: + err = blen == sizeof(struct fuse_entry_out) + sizeof(struct fuse_open_out) ? 0 : EINVAL; + break; +@@ -881,7 +881,7 @@ + panic("fuse opcodes out of sync"); + } + +-#if _DEBUG2G ++#ifdef _DEBUG2G + if (err) + DEBUG2G("op %s (#%d) with body size %d: invalid body size\n", + (0 <= opcode && opcode <= fuse_opnames_entries) ? fuse_opnames[opcode] : "???", +@@ -988,7 +988,7 @@ + return (0); + } + +-#if FUSE_HAS_CREATE ++#ifdef FUSE_HAS_CREATE + static int + fuse_forgetful_handler(struct fuse_callback_node *caliban, struct uio *uio) + { +@@ -1242,7 +1242,7 @@ + static int + fusedev_write(struct cdev *dev, struct uio *uio, int ioflag) + { +-#if _DEBUG_MSGING ++#ifdef _DEBUG_MSGING + static int counter=0; + #endif + struct fuse_out_header *ohead; +@@ -1415,7 +1415,7 @@ + if ((err = fuse_callbn_wait_answer(&fdip->tick->callbn))) { + /* Uh-huh, we got interrupted... */ + +-#if ! DONT_TRY_HARD_PREVENT_IO_IN_VAIN ++#ifndef DONT_TRY_HARD_PREVENT_IO_IN_VAIN + struct fuse_callback_node *fcallbn; + unsigned age; + #endif +@@ -1438,7 +1438,7 @@ + age = fdip->tick->age; + fuse_callbn_set_answered(&fdip->tick->callbn); + mtx_unlock(&fdip->tick->callbn.answer_mtx); +-#if ! DONT_TRY_HARD_PREVENT_IO_IN_VAIN ++#ifndef DONT_TRY_HARD_PREVENT_IO_IN_VAIN + /* + * If we are willing to pay with one more locking, we + * can save on I/O by getting the device write handler +@@ -1662,7 +1662,7 @@ + /* static vop_pathconf_t fuse_pathconf; */ + static vfs_hash_cmp_t fuse_vnode_cmp; + static vfs_hash_cmp_t fuse_vnode_bgdrop_cmp; +-#if FUSE_HAS_CREATE ++#ifdef FUSE_HAS_CREATE + static vfs_hash_cmp_t fuse_vnode_fgdrop_cmp; + #endif + /* static vfs_vget_t fuse_vget; */ +@@ -1683,7 +1683,7 @@ + static vop_lookup_t fuse_lookup; + static int iterate_filehandles(struct vnode *vp, struct thread *td, struct ucred *cred, fuse_metrics_t fmetr, void *param); + static fuse_metrics_t fuse_standard_metrics; +-#if FUSE_HAS_CREATE ++#ifdef FUSE_HAS_CREATE + static __inline int create_filehandle(struct vnode *vp, struct thread *td, struct ucred *cred, int mode, struct fuse_dispatcher *fdip); + #endif + static struct fuse_filehandle *get_filehandle(struct vnode *vp, struct thread *td, struct ucred *cred, int mode, struct get_filehandle_param *gefhp); +@@ -1729,7 +1729,7 @@ + + static b_strategy_t fuse_bufstrategy; + +-#if FUSE_HAS_CREATE ++#ifdef FUSE_HAS_CREATE + static vop_access_t fuse_germ_access; + #endif + +@@ -1773,7 +1773,7 @@ + .vop_unlock = fuse_unlock, + }; + +-#if FUSE_HAS_CREATE ++#ifdef FUSE_HAS_CREATE + static struct vop_vector fuse_germ_vnops; + #endif + +@@ -2092,7 +2092,7 @@ + + if (! (fmnt->mntopts & FUSEFS_SECONDARY)) { + data->mp = mp; +-#if ! REALTIME_TRACK_UNPRIVPROCDBG ++#ifndef REALTIME_TRACK_UNPRIVPROCDBG + fmnt->mntopts &= ~FUSEFS_UNPRIVPROCDBG; + fmnt->mntopts |= get_unprivileged_proc_debug(td) ? FUSEFS_UNPRIVPROCDBG : 0; + #endif +@@ -2380,7 +2380,7 @@ + return (0); + } + +-#if FUSE_HAS_CREATE ++#ifdef FUSE_HAS_CREATE + /* + * Vnode comparison function with which the given vnode always + * gets inserted, but got marked invalid upon a clash. Caller +@@ -2654,7 +2654,7 @@ + + fuse_filehandle_gc(vp, td, NULL); + +-#if ! DONT_STORE_FS_MAP ++#ifndef DONT_STORE_FS_MAP + /* + * Dropping vnodes when they are not in use would mean that + * the respective inode must be freed on the daemon's side +@@ -2751,7 +2751,7 @@ + int denied; + + if ((denied = cr_candebug( +-#if REALTIME_TRACK_UNPRIVPROCDBG ++#ifdef REALTIME_TRACK_UNPRIVPROCDBG + get_unprivileged_proc_debug(td), + #else + fmnt->mntopts & FUSEFS_UNPRIVPROCDBG, +@@ -2948,7 +2948,7 @@ + + } else { + struct sx *devlock = fdi.slock; +-#if FUSE_HAS_ACCESS ++#ifdef FUSE_HAS_ACCESS + struct fuse_access_in *fai; + + if (! (facp->facc_flags & FACCESS_DO_ACCESS)) +@@ -3056,7 +3056,7 @@ + + bzero(&facp, sizeof(facp)); + if ( +-#if NO_EARLY_PERM_CHECK_HACK ++#ifdef NO_EARLY_PERM_CHECK_HACK + 1 + #else + dvp->v_vflag & VV_ROOT +@@ -3281,8 +3281,12 @@ + DEBUG("we peacefully found that file\n"); + + if (flags & ISDOTDOT) { +- vn_lock(pdp, LK_EXCLUSIVE | LK_RETRY, td); ++ VOP_UNLOCK(dvp, 0, td); ++ err = vn_lock(pdp, cnp->cn_lkflags, td); + VREF(pdp); ++ vn_lock(dvp, LK_EXCLUSIVE | LK_RETRY, td); ++ if (err) ++ goto out; + *vpp = pdp; + } else if (nid == VTOI(dvp)) { + VREF(dvp); /* We want ourself, ie "." */ +@@ -3347,7 +3351,7 @@ + if (islastcn && flags & ISOPEN) + ((struct fuse_vnode_data *)(*vpp)->v_data)->flags |= FVP_ACCESS_NOOP; + +-#if ! NO_EARLY_PERM_CHECK_HACK ++#ifndef NO_EARLY_PERM_CHECK_HACK + if (! islastcn) { + /* We have the attributes of the next item + * *now*, and it's a fact, and we do not have +@@ -3486,7 +3490,7 @@ + return (0); + } + +-#if FUSE_HAS_CREATE ++#ifdef FUSE_HAS_CREATE + static __inline int + create_filehandle(struct vnode *vp, struct thread *td, struct ucred *cred, + int mode, struct fuse_dispatcher *fdip) +@@ -3643,7 +3647,7 @@ + * the vnode... if the vnode is a germ, it will be tried to be initialized + * via a dedicated method, but from that on we go on as usual.) + */ +-#if FUSE_HAS_CREATE ++#ifdef FUSE_HAS_CREATE + if (vp->v_op == &fuse_germ_vnops) { + KASSERT(gefhp, ("create_filehandle called without get_filehandle_param")); + gone_create = 1; +@@ -3709,7 +3713,7 @@ + if ((err = fdisp_wait_answ(&fdi))) + goto out; + +-#if FUSE_HAS_CREATE ++#ifdef FUSE_HAS_CREATE + setup_filehandle: + #endif + foo = fdi.answ; +@@ -4184,7 +4188,7 @@ + #define BSD_FUSE_PAGENO_BOUND MIN(FUSE_MAX_PAGES_PER_REQ, MAXBSIZE / PAGE_SIZE) + + bcount = MIN(MAXBSIZE, biosize * BSD_FUSE_PAGENO_BOUND); +-#if BIOREAD_CONSIDER_FILE_SIZE ++#ifdef BIOREAD_CONSIDER_FILE_SIZE + if (vp->v_type != VDIR) { + /* + * for directories we can't predict the size, in fact +@@ -4493,7 +4497,7 @@ + break; + } + +-#if ZERO_PAD_INCOMPLETE_BUFS ++#ifdef ZERO_PAD_INCOMPLETE_BUFS + if (isbzero(buf), FUSE_NAME_OFFSET) { + err = -1; + break; +@@ -4658,7 +4662,7 @@ + struct vnode *dvp = ap->a_dvp; + struct vnode **vpp = ap->a_vpp; + struct vattr *vap = ap->a_vap; +-#if FUSE_HAS_CREATE ++#ifdef FUSE_HAS_CREATE + struct fuse_dispatcher fdi; + struct fuse_vnode_data *fvdat; + int err; +@@ -4949,7 +4953,7 @@ + if (err) + goto out; + +-#if ! DONT_DO_CHECKPATH ++#ifndef DONT_DO_CHECKPATH + if (doingdirectory && fdvp != tdvp) { + /* + * Check for pathname conflict. +@@ -5741,7 +5745,7 @@ + chunksize, (long long unsigned)fri->offset, respsize); + + if (respsize < chunksize) { +-#if ZERO_PAD_INCOMPLETE_BUFS ++#ifdef ZERO_PAD_INCOMPLETE_BUFS + /* + * "if we don't get enough data, just fill the + * rest with zeros." +@@ -5888,7 +5892,7 @@ + "vp=%p, rc=%d", bp, vp, rc)); + } + +-#if FUSE_HAS_CREATE ++#ifdef FUSE_HAS_CREATE + static int + fuse_germ_access(struct vop_access_args *ap) + { +@@ -5908,7 +5912,7 @@ + + /* Modeled after tunclone() of net/if_tun.c + */ +-#if USE_OLD_CLONEHANDLER_API ++#ifdef USE_OLD_CLONEHANDLER_API + static void + fusedev_clone(void *arg, char *name, int namelen, struct cdev **dev) + #else +@@ -6019,7 +6023,7 @@ + fuse_fileops.fo_close = fuse_close_f; + fuse_fileops.fo_flags = DFLAG_PASSABLE | DFLAG_SEEKABLE; + +-#if FUSE_HAS_CREATE ++#ifdef FUSE_HAS_CREATE + memcpy(&fuse_germ_vnops, &dead_vnodeops, sizeof(struct vop_vector)); + fuse_germ_vnops.vop_access = fuse_germ_access; + fuse_germ_vnops.vop_open = fuse_open; diff -ruN fusefs-kmod.orig/files/patch-fuse_module_fuse.h fusefs-kmod/files/patch-fuse_module_fuse.h --- fusefs-kmod.orig/files/patch-fuse_module_fuse.h Wed Dec 31 19:00:00 1969 +++ fusefs-kmod/files/patch-fuse_module_fuse.h Sun Jul 16 14:47:00 2006 @@ -0,0 +1,112 @@ +--- fuse_module/fuse.h.orig Fri Feb 10 17:31:53 2006 ++++ fuse_module/fuse.h Sun Jul 16 14:43:20 2006 +@@ -8,7 +8,7 @@ + + #ifndef USE_OLD_CLONEHANDLER_API + #if __FreeBSD_version < 600034 || ( __FreeBSD_version >= 700000 && __FreeBSD_version < 700002 ) +-#define USE_OLD_CLONEHANDLER_API 1 ++#define USE_OLD_CLONEHANDLER_API + #endif + #endif + +@@ -19,10 +19,10 @@ + */ + #if FUSE_KERNELABI_GEQ(7, 3) + #ifndef FUSE_HAS_ACCESS +-#define FUSE_HAS_ACCESS 1 ++#define FUSE_HAS_ACCESS + #endif + #ifndef FUSE_HAS_CREATE +-#define FUSE_HAS_CREATE 1 ++#define FUSE_HAS_CREATE + #endif + #endif + +@@ -75,7 +75,7 @@ + size_t len; /* To keep track of size of the data pushed into base, =< len, of course */ + }; + +-#if ! FUSE_AUX ++#ifndef FUSE_AUX + #ifndef FUSE_MAX_STORED_FREE_TICKETS + #define FUSE_MAX_STORED_FREE_TICKETS 0 + #endif +@@ -251,7 +251,7 @@ + int flags; + LIST_HEAD(, fuse_filehandle) fh_head; + int fh_counter; +-#if FUSE_HAS_CREATE ++#ifdef FUSE_HAS_CREATE + struct componentname *germcnp; + #endif + }; +@@ -260,6 +260,9 @@ + + /* Debug related stuff */ + ++#ifndef DEBUGTOLOG ++#define DEBUGTOLOG 0 ++#endif + #if DEBUGTOLOG + #define dprintf(args ...) log(LOG_DEBUG, args) + #else +@@ -267,6 +270,9 @@ + #endif + + #define DEBLABEL "[fuse-debug] " ++#ifndef _DEBUG ++#define _DEBUG 0 ++#endif + #if _DEBUG + #ifndef _DEBUG2G + #define _DEBUG2G 1 +@@ -280,6 +286,9 @@ + #define DEBUG(args ...) + #endif + ++#ifndef _DEBUG2G ++#define _DEBUG2G 0 ++#endif + #if _DEBUG2G + #ifndef _DEBUG3G + #define _DEBUG3G 1 +@@ -290,6 +299,9 @@ + #define DEBUG2G(args ...) + #endif + ++#ifndef _DEBUG3G ++#define _DEBUG3G 0 ++#endif + #if _DEBUG3G + #define DEBUG3G(args, ...) \ + printf(DEBLABEL "%s:%d: " args, __func__, __LINE__, ## __VA_ARGS__) +@@ -297,13 +309,19 @@ + #define DEBUG3G(args ...) + #endif + ++#ifndef FMASTER ++#define FMASTER 0 ++#endif + #if FMASTER + #ifndef _DEBUG_MSGING + #define _DEBUG_MSGING 1 + #endif + #endif + +-#if _DEBUG_MSGING ++#ifndef _DEBUG_MSG ++#define _DEBUG_MSG 0 ++#endif ++#ifdef _DEBUG_MSGING + #define fuprintf(args...) \ + uprintf("[kern] " args) + #else +@@ -319,7 +337,7 @@ + void fprettyprint(struct fuse_iov *fiov, size_t dlen); + #endif + +-#if IGNORE_INLINE ++#ifdef IGNORE_INLINE + #define __inline + #endif + --- fusefs-kmod-buildfix.patch ends here --- >Release-Note: >Audit-Trail: >Unformatted:
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?1153076237.60156>