aboutsummaryrefslogtreecommitdiffstats
path: root/lib/mount.c
diff options
context:
space:
mode:
Diffstat (limited to 'lib/mount.c')
-rw-r--r--lib/mount.c7
1 files changed, 5 insertions, 2 deletions
diff --git a/lib/mount.c b/lib/mount.c
index 6ed4444..34e5dd4 100644
--- a/lib/mount.c
+++ b/lib/mount.c
@@ -49,6 +49,7 @@
#define FUSERMOUNT_PROG "fusermount3"
#define FUSE_COMMFD_ENV "_FUSE_COMMFD"
#define FUSE_COMMFD2_ENV "_FUSE_COMMFD2"
+#define FUSE_KERN_DEVICE_ENV "FUSE_KERN_DEVICE"
#ifndef MS_DIRSYNC
#define MS_DIRSYNC 128
@@ -506,7 +507,7 @@ static int fuse_mount_sys(const char *mnt, struct mount_opts *mo,
const char *mnt_opts)
{
char tmp[128];
- const char *devname = "/dev/fuse";
+ const char *devname = getenv(FUSE_KERN_DEVICE_ENV) ?: "/dev/fuse";
char *source = NULL;
char *type = NULL;
struct stat stbuf;
@@ -528,7 +529,9 @@ static int fuse_mount_sys(const char *mnt, struct mount_opts *mo,
fd = open(devname, O_RDWR | O_CLOEXEC);
if (fd == -1) {
if (errno == ENODEV || errno == ENOENT)
- fuse_log(FUSE_LOG_ERR, "fuse: device not found, try 'modprobe fuse' first\n");
+ fuse_log(FUSE_LOG_ERR,
+ "fuse: device %s not found. Kernel module not loaded?\n",
+ devname);
else
fuse_log(FUSE_LOG_ERR, "fuse: failed to open %s: %s\n",
devname, strerror(errno));