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() --- ChangeLog | 5 +++++ lib/fuse_kern_chan.c | 6 +++++- 2 files changed, 10 insertions(+), 1 deletion(-) diff --git a/ChangeLog b/ChangeLog index 40e7036..5c536e7 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,8 @@ +2007-05-11 Csaba Henk + + * Fix return value of fuse_loop()/fuse_loop_mt(). + Error reported by Csaba Henk, fix by Miklos Szeredi. + 2007-05-03 Miklos Szeredi * 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; } -- cgit v1.2.3