diff options
author | Csaba Henk <csaba.henk@creo.hu> | 2007-05-10 22:52:34 +0000 |
---|---|---|
committer | Csaba Henk <csaba.henk@creo.hu> | 2007-05-10 22:52:34 +0000 |
commit | ac8fc95e0fb50e1ec7ad5cbae772d7e8b6b6ce51 (patch) | |
tree | 17596b74173299e21c0e5c913f5cd6a2f1a7da48 | |
parent | 56ef5d3a1d2b56fa6a0c60f2d8df1393784aa90e (diff) |
fix return value of fuse_loop()/fuse_loop_mt()
-rw-r--r-- | ChangeLog | 5 | ||||
-rw-r--r-- | lib/fuse_kern_chan.c | 6 |
2 files changed, 10 insertions, 1 deletions
@@ -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; } |