From ac8fc95e0fb50e1ec7ad5cbae772d7e8b6b6ce51 Mon Sep 17 00:00:00 2001 From: Csaba Henk Date: Thu, 10 May 2007 22:52:34 +0000 Subject: fix return value of fuse_loop()/fuse_loop_mt() --- lib/fuse_kern_chan.c | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) (limited to 'lib/fuse_kern_chan.c') 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; } -- cgit v1.2.3