diff options
Diffstat (limited to 'lib')
-rw-r--r-- | lib/fuse_lowlevel.c | 4 | ||||
-rw-r--r-- | lib/mount.c | 3 |
2 files changed, 6 insertions, 1 deletions
diff --git a/lib/fuse_lowlevel.c b/lib/fuse_lowlevel.c index 4855961..a960123 100644 --- a/lib/fuse_lowlevel.c +++ b/lib/fuse_lowlevel.c @@ -2655,6 +2655,8 @@ int fuse_session_receive_buf_int(struct fuse_session *se, struct fuse_buf *buf, if (res == -1) { if (err == ENODEV) { + /* Filesystem was unmounted, or connection was aborted + via /sys/fs/fuse/connections */ fuse_session_exit(se); return 0; } @@ -2743,6 +2745,8 @@ restart: goto restart; if (err == ENODEV) { + /* Filesystem was unmounted, or connection was aborted + via /sys/fs/fuse/connections */ fuse_session_exit(se); return 0; } diff --git a/lib/mount.c b/lib/mount.c index d19242e..2f7e068 100644 --- a/lib/mount.c +++ b/lib/mount.c @@ -275,7 +275,8 @@ void fuse_kern_unmount(const char *mountpoint, int fd) close(fd); /* If file poll returns POLLERR on the device file descriptor, - then the filesystem is already unmounted */ + then the filesystem is already unmounted or the connection + was severed via /sys/fs/fuse/connections/NNN/abort */ if (res == 1 && (pfd.revents & POLLERR)) return; } |