PERFORCE change 81689 for review

soc-chenk soc-chenk at FreeBSD.org
Mon Aug 8 22:52:22 GMT 2005


http://perforce.freebsd.org/chv.cgi?CH=81689

Change 81689 by soc-chenk at 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);
 
 	}
 }


More information about the p4-projects mailing list