aboutsummaryrefslogtreecommitdiff
path: root/lib/mount_bsd.c
diff options
context:
space:
mode:
authorGravatar Nikolaus Rath <Nikolaus@rath.org>2016-11-22 16:34:21 -0800
committerGravatar Nikolaus Rath <Nikolaus@rath.org>2016-11-22 16:34:21 -0800
commit4175f969bdacf76113f74cc0e8d419aec845317f (patch)
treef8bdaff89b13610d2190fe2e4005824410b37011 /lib/mount_bsd.c
parent05de3c98c07e636e007e7ecf6516508426d02c83 (diff)
Make handling of -oallow_root easier to understand
-oallow_root is handled in userspace, and requires passing -oallow_other to the kernel. This patch should make the code easier to understand and avoid the confusion that gave rise to issue #86.
Diffstat (limited to 'lib/mount_bsd.c')
-rw-r--r--lib/mount_bsd.c15
1 files changed, 0 insertions, 15 deletions
diff --git a/lib/mount_bsd.c b/lib/mount_bsd.c
index 8bff2cf..f0eea6f 100644
--- a/lib/mount_bsd.c
+++ b/lib/mount_bsd.c
@@ -31,14 +31,12 @@
#define FUSE_DEV_TRUNK "/dev/fuse"
enum {
- KEY_ALLOW_ROOT,
KEY_RO,
KEY_KERN
};
struct mount_opts {
int allow_other;
- int allow_root;
char *kernel_opts;
unsigned max_read;
};
@@ -48,9 +46,7 @@ struct mount_opts {
static const struct fuse_opt fuse_mount_opts[] = {
{ "allow_other", offsetof(struct mount_opts, allow_other), 1 },
- { "allow_root", offsetof(struct mount_opts, allow_root), 1 },
{ "max_read=%u", offsetof(struct mount_opts, max_read), 1 },
- FUSE_OPT_KEY("allow_root", KEY_ALLOW_ROOT),
FUSE_OPT_KEY("-r", KEY_RO),
/* standard FreeBSD mount options */
FUSE_DUAL_OPT_KEY("dev", KEY_KERN),
@@ -111,12 +107,6 @@ static int fuse_mount_opt_proc(void *data, const char *arg, int key,
struct mount_opts *mo = data;
switch (key) {
- case KEY_ALLOW_ROOT:
- if (fuse_opt_add_opt(&mo->kernel_opts, "allow_other") == -1 ||
- fuse_opt_add_arg(outargs, "-oallow_root") == -1)
- return -1;
- return 0;
-
case KEY_RO:
arg = "ro";
/* fall through */
@@ -311,11 +301,6 @@ struct mount_opts *parse_mount_opts(struct fuse_args *args)
fuse_opt_parse(args, mo, fuse_mount_opts, fuse_mount_opt_proc) == -1)
goto err_out;
- if (mo->allow_other && mo->allow_root) {
- fprintf(stderr, "fuse: 'allow_other' and 'allow_root' options are mutually exclusive\n");
- goto err_out;
- }
-
return mo;
err_out: