Hi,

Fuse does not handle the situation gracefully if a file system does not respond 
in time while servicing a system call. Fuse should block indefinitely until the 
call responds and the patch below does exactly this. A future improvement would 
be to support interrupting via Ctrl-C but that will take a bit more work.

The patch also changes the wait text so that it fits into the WAIT column in 
top. 

-- 
Helg <[email protected]>



Index: fusebuf.c
===================================================================
RCS file: /cvs/src/sys/miscfs/fuse/fusebuf.c,v
retrieving revision 1.11
diff -u -p -r1.11 fusebuf.c
--- fusebuf.c   14 Mar 2015 03:38:51 -0000      1.11
+++ fusebuf.c   25 Jul 2015 08:02:27 -0000
@@ -54,7 +54,7 @@ fb_queue(dev_t dev, struct fusebuf *fbuf
 
        fuse_device_queue_fbuf(dev, fbuf);
 
-       if ((error = tsleep(fbuf, PWAIT, "fuse msg", TSLEEP_TIMEOUT * hz))) {
+       if ((error = tsleep(fbuf, PWAIT, "fuse", 0))) {
                fuse_device_cleanup(dev, fbuf);
                return (error);
        }



Reply via email to