diff options
author | Miklos Szeredi <miklos@szeredi.hu> | 2006-08-18 19:26:23 +0000 |
---|---|---|
committer | Miklos Szeredi <miklos@szeredi.hu> | 2006-08-18 19:26:23 +0000 |
commit | 543087d48121b8628e875108aaa190af88dc4496 (patch) | |
tree | 0b7ca6f0cca2e9771ecb0e87f8dff87e188e3a94 | |
parent | 3ded1a3176bb803e016e79d0e6db5e1f3ea30473 (diff) | |
download | libfuse-543087d48121b8628e875108aaa190af88dc4496.tar.gz |
fusermount improvement
-rw-r--r-- | ChangeLog | 5 | ||||
-rw-r--r-- | util/fusermount.c | 21 |
2 files changed, 20 insertions, 6 deletions
@@ -8,6 +8,11 @@ the kernel tree) the statfs method will receive the path within the filesystem on which the stat(v)fs syscall was called. + * fusermount: try to modprobe fuse module if invoked by root and + unable to open device. This is needed with udev, since the device + node will be created only when the module is inserted, hence + module autoloading won't work. Reported by Szakacsits Szabolcs + 2006-07-30 Miklos Szeredi <miklos@szeredi.hu> * fusermount: if selinux is active, restore the original file's diff --git a/util/fusermount.c b/util/fusermount.c index 6d3ef97..89ecb2c 100644 --- a/util/fusermount.c +++ b/util/fusermount.c @@ -841,14 +841,23 @@ static int try_open_fuse_device(char **devp) static int open_fuse_device(char **devp) { - int fd = try_open_fuse_device(devp); - if (fd >= 0) + int fd; + + if (getuid() == 0) { + fd = try_open_fuse_device(devp); + if (fd >= -1) + return fd; + + system("modprobe fuse"); + } + + fd = try_open_fuse_device(devp); + if (fd >= -1) return fd; - if (fd == -2) - fprintf(stderr, - "%s: fuse device not found, try 'modprobe fuse' first\n", - progname); + fprintf(stderr, "%s: fuse device not found, try 'modprobe fuse' first\n", + progname); + return -1; } |