git://git.jankratochvil.net
/
captive.git
/ commitdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
| commitdiff |
tree
raw
|
patch
|
inline
| side by side (parent:
0629f8b
)
Provide automatic "/dev/fuse" mknod(2)ding for ENOENT entries.
author
lace
<>
Mon, 26 Dec 2005 07:54:00 +0000
(07:54 +0000)
committer
lace
<>
Mon, 26 Dec 2005 07:54:00 +0000
(07:54 +0000)
src/client/fuse/fusermount.c
patch
|
blob
|
history
diff --git
a/src/client/fuse/fusermount.c
b/src/client/fuse/fusermount.c
index
d7dee7e
..
c7e45f9
100644
(file)
--- a/
src/client/fuse/fusermount.c
+++ b/
src/client/fuse/fusermount.c
@@
-41,6
+41,9
@@
/* Captive */
#include <captive/client.h>
/* Captive */
#include <captive/client.h>
+#include <linux/kdev_t.h>
+#include <linux/major.h>
+#include <grp.h>
#define FUSE_COMMFD_ENV "_FUSE_COMMFD"
#define FUSE_COMMFD_ENV "_FUSE_COMMFD"
@@
-779,6
+782,15
@@
static int check_perm(const char **mntp, struct stat *stbuf, int *currdir_fd,
static int try_open(const char *dev, char **devp, int silent)
{
int fd = open(dev, O_RDWR);
static int try_open(const char *dev, char **devp, int silent)
{
int fd = open(dev, O_RDWR);
+ /* Captive */
+ if (fd == -1 && errno == ENOENT && !strcmp(dev, FUSE_DEV_NEW)
+ && !mknod(dev, 0660 | S_IFCHR, MKDEV(MISC_MAJOR, 229))) {
+ struct group *group;
+
+ fprintf(stderr, "%s: Notice: Created FUSE device: %s\n", progname, dev);
+ if ((group = getgrnam("fuse")) && !chown(dev, 0, group->gr_gid))
+ fd = open(dev, O_RDWR);
+ }
if (fd != -1) {
*devp = strdup(dev);
if (*devp == NULL) {
if (fd != -1) {
*devp = strdup(dev);
if (*devp == NULL) {