aboutsummaryrefslogtreecommitdiff
path: root/lib
diff options
context:
space:
mode:
Diffstat (limited to 'lib')
-rw-r--r--lib/fuse_lowlevel.c4
-rw-r--r--lib/mount.c3
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;
}