Date: Mon, 8 Aug 2005 22:52:20 GMT From: soc-chenk <soc-chenk@FreeBSD.org> To: Perforce Change Reviews <perforce@freebsd.org> Subject: PERFORCE change 81689 for review Message-ID: <200508082252.j78MqKfn060274@repoman.freebsd.org>
next in thread | raw e-mail | index | archive | help
http://perforce.freebsd.org/chv.cgi?CH=81689 Change 81689 by soc-chenk@soc-chenk_leavemealone on 2005/08/08 22:52:20 (Darcs changelog) Tue Aug 9 00:40:46 CEST 2005 at node: creo.hu, nick: csaba * Distribution cleanups - A more comprehensive Makefile was put together - Removed fuselib/fuselib.diff as it's not the appropriate place to keep in sync with Fuse - Added a concise README M ./Makefile -1 +28 A ./README M ./fmaster.c -3 R ./fuselib/fuselib.diff Tue Aug 9 00:39:31 CEST 2005 at node: creo.hu, nick: csaba * Fixed the bug which led to panic when multithreaded daemons were killed M ./fuse.c -2 +8 Submitted by: soc-chenk Affected files ... .. //depot/projects/soc2005/fuse4bsd/Makefile#2 edit .. //depot/projects/soc2005/fuse4bsd/README#1 add .. //depot/projects/soc2005/fuse4bsd/fmaster.c#2 edit .. //depot/projects/soc2005/fuse4bsd/fuse.c#2 edit .. //depot/projects/soc2005/fuse4bsd/fuselib/fuselib.diff#2 delete Differences ... ==== //depot/projects/soc2005/fuse4bsd/Makefile#2 (text+ko) ==== @@ -1,4 +1,31 @@ -SRCS=fuse.c fmaster.c +SRCS=fuse.c + +.if defined(FMASTER) +SRCS+= fmaster.c +CFLAGS+= -DFMASTER +.endif + +.if defined(DEBUG) +CFLAGS+= -D_DEBUG +.endif + +CFLAGS+= -DINVARIANTS + KMOD=fusedummy +CLEANFILES+= fuse_kernel.h fuse_opnames.h + +fusedummy.ko: fuse_opnames fuse_kernel.h + +fuse_kernel.h: + cp fuse_kernel.h.orig fuse_kernel.h + patch fuse_kernel.h < kernel-header.diff + +fuse_opnames: +.if defined(FMASTER) + ruby tools/genopnames.rb fuse_kernel.h.orig > fuse_opnames.h +.endif + + + .include <bsd.kmod.mk> ==== //depot/projects/soc2005/fuse4bsd/fmaster.c#2 (text+ko) ==== @@ -1,4 +1,3 @@ -#ifdef FMASTER #include <sys/types.h> #include <sys/systm.h> /* uprintf */ #include <sys/errno.h> @@ -449,5 +448,3 @@ ticket_drop(caliban->ticket); return (err); } - -#endif ==== //depot/projects/soc2005/fuse4bsd/fuse.c#2 (text+ko) ==== @@ -890,7 +890,13 @@ } DEBUG("FR4,%d\n", uio->uio_td->td_tid); fmsgn = fdata_pop_msg(data); - KASSERT(fmsgn, ("fusecv signalled green tho list head still NULL")); + if (! fmsgn) { + /* We can get here if fuse daemon suddenly terminates, + * eg, by being hit by a SIGKILL + */ + mtx_unlock(&data->msg_mtx); + return (ENODEV); + } } mtx_unlock(&data->msg_mtx); @@ -1043,7 +1049,7 @@ (*dev)->si_flags |= SI_CHEAPCLONE; } - printf("clone done: %d\n",unit); + DEBUG("clone done: %d\n",unit); } }
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200508082252.j78MqKfn060274>