aboutsummaryrefslogtreecommitdiffstats
path: root/lib
diff options
context:
space:
mode:
authorCsaba Henk <csaba.henk@creo.hu>2007-05-10 22:52:34 +0000
committerCsaba Henk <csaba.henk@creo.hu>2007-05-10 22:52:34 +0000
commitac8fc95e0fb50e1ec7ad5cbae772d7e8b6b6ce51 (patch)
tree17596b74173299e21c0e5c913f5cd6a2f1a7da48 /lib
parent56ef5d3a1d2b56fa6a0c60f2d8df1393784aa90e (diff)
downloadlibfuse-ac8fc95e0fb50e1ec7ad5cbae772d7e8b6b6ce51.tar.gz
fix return value of fuse_loop()/fuse_loop_mt()
Diffstat (limited to 'lib')
-rw-r--r--lib/fuse_kern_chan.c6
1 files changed, 5 insertions, 1 deletions
diff --git a/lib/fuse_kern_chan.c b/lib/fuse_kern_chan.c
index 622b48d..466703b 100644
--- a/lib/fuse_kern_chan.c
+++ b/lib/fuse_kern_chan.c
@@ -36,10 +36,14 @@ static int fuse_kern_chan_receive(struct fuse_chan **chp, char *buf,
if (err == ENOENT)
goto restart;
+ if (err == ENODEV) {
+ fuse_session_exit(se);
+ return 0;
+ }
/* Errors occuring during normal operation: EINTR (read
interrupted), EAGAIN (nonblocking I/O), ENODEV (filesystem
umounted) */
- if (err != EINTR && err != EAGAIN && err != ENODEV)
+ if (err != EINTR && err != EAGAIN)
perror("fuse: reading device");
return -err;
}