fix
diff --git a/lib/fuse.c b/lib/fuse.c
index 0b31233..ec5ace9 100644
--- a/lib/fuse.c
+++ b/lib/fuse.c
@@ -1880,10 +1880,10 @@
     size_t bufsize = fuse_chan_bufsize(ch);
     struct fuse_cmd *cmd = fuse_alloc_cmd(bufsize);
     if (cmd != NULL) {
-        int res = fuse_chan_receive(ch, cmd->buf, bufsize);
+        int res = fuse_chan_recv(ch, cmd->buf, bufsize);
         if (res <= 0) {
             free_cmd(cmd);
-            if (res == -1)
+            if (res < 0 && res != -EINTR && res != -EAGAIN)
                 fuse_exit(f);
             return NULL;
         }