diff options
author | Miklos Szeredi <miklos@szeredi.hu> | 2005-04-29 08:03:24 +0000 |
---|---|---|
committer | Miklos Szeredi <miklos@szeredi.hu> | 2005-04-29 08:03:24 +0000 |
commit | 9372ffdb976f3d6ede013909209ba636ae63c50b (patch) | |
tree | 8f13486d8f266876a31fdcda8a913d33826b36c9 | |
parent | 61139dbd44fec7d8995b761fdab7df94814b53ab (diff) | |
download | libfuse-9372ffdb976f3d6ede013909209ba636ae63c50b.tar.gz |
fix
-rw-r--r-- | ChangeLog | 6 | ||||
-rw-r--r-- | util/fusermount.c | 5 |
2 files changed, 11 insertions, 0 deletions
@@ -1,3 +1,9 @@ +2005-04-29 Miklos Szeredi <miklos@szeredi.hu> + + * Make fusermount work with fuse kernel modules not yet supporting + the "group_id" option (added for the purpose of stricter + permission checking). + 2005-04-28 Miklos Szeredi <miklos@szeredi.hu> * Check for hard-linked directories in lookup. This could cause diff --git a/util/fusermount.c b/util/fusermount.c index f55d92b..93a44e2 100644 --- a/util/fusermount.c +++ b/util/fusermount.c @@ -574,6 +574,11 @@ static int do_mount(const char *mnt, const char *type, mode_t rootmode, } res = mount(fsname, mnt, type, flags, optbuf); + if (res == -1 && errno == EINVAL) { + /* It could be an old version not supporting group_id */ + sprintf(d, "fd=%i,rootmode=%o,user_id=%i", fd, rootmode, getuid()); + res = mount(fsname, mnt, type, flags, optbuf); + } if (res == -1) { fprintf(stderr, "%s: mount failed: %s\n", progname, strerror(errno)); free(fsname); |