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 /lib/fuse_kern_chan.c | |
parent | 56ef5d3a1d2b56fa6a0c60f2d8df1393784aa90e (diff) | |
download | libfuse-ac8fc95e0fb50e1ec7ad5cbae772d7e8b6b6ce51.tar.gz |
fix return value of fuse_loop()/fuse_loop_mt()
Diffstat (limited to 'lib/fuse_kern_chan.c')
-rw-r--r-- | lib/fuse_kern_chan.c | 6 |
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; } |