aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGravatar Csaba Henk <csaba.henk@creo.hu>2007-05-10 22:52:34 +0000
committerGravatar Csaba Henk <csaba.henk@creo.hu>2007-05-10 22:52:34 +0000
commitac8fc95e0fb50e1ec7ad5cbae772d7e8b6b6ce51 (patch)
tree17596b74173299e21c0e5c913f5cd6a2f1a7da48
parent56ef5d3a1d2b56fa6a0c60f2d8df1393784aa90e (diff)
fix return value of fuse_loop()/fuse_loop_mt()
-rw-r--r--ChangeLog5
-rw-r--r--lib/fuse_kern_chan.c6
2 files changed, 10 insertions, 1 deletions
diff --git a/ChangeLog b/ChangeLog
index 40e7036..5c536e7 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,8 @@
+2007-05-11 Csaba Henk <csaba.henk@creo.hu>
+
+ * Fix return value of fuse_loop()/fuse_loop_mt().
+ Error reported by Csaba Henk, fix by Miklos Szeredi.
+
2007-05-03 Miklos Szeredi <miklos@szeredi.hu>
* Released 2.7.0-rc1
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;
}