aboutsummaryrefslogtreecommitdiffstats
path: root/util/fusermount.c
diff options
context:
space:
mode:
Diffstat (limited to 'util/fusermount.c')
-rw-r--r--util/fusermount.c15
1 files changed, 10 insertions, 5 deletions
diff --git a/util/fusermount.c b/util/fusermount.c
index 06f5f56..5716c76 100644
--- a/util/fusermount.c
+++ b/util/fusermount.c
@@ -1454,7 +1454,7 @@ int main(int argc, char *argv[])
static int unmount = 0;
static int lazy = 0;
static int quiet = 0;
- char *commfd;
+ char *commfd = NULL;
int cfd;
const char *opts = "";
const char *type = NULL;
@@ -1462,14 +1462,15 @@ int main(int argc, char *argv[])
static const struct option long_opts[] = {
{"unmount", no_argument, NULL, 'u'},
- // Note: auto-unmount deliberately does not have a short version.
- // It's meant for internal use by mount.c's setup_auto_unmount.
- {"auto-unmount", no_argument, NULL, 'U'},
{"lazy", no_argument, NULL, 'z'},
{"quiet", no_argument, NULL, 'q'},
{"help", no_argument, NULL, 'h'},
{"version", no_argument, NULL, 'V'},
{"options", required_argument, NULL, 'o'},
+ // Note: auto-unmount and comm-fd don't have short versions.
+ // They'ne meant for internal use by mount.c
+ {"auto-unmount", no_argument, NULL, 'U'},
+ {"comm-fd", required_argument, NULL, 'c'},
{0, 0, 0, 0}};
progname = strdup(argc > 0 ? argv[0] : "fusermount");
@@ -1501,6 +1502,9 @@ int main(int argc, char *argv[])
auto_unmount = 1;
setup_auto_unmount_only = 1;
break;
+ case 'c':
+ commfd = optarg;
+ break;
case 'z':
lazy = 1;
break;
@@ -1547,7 +1551,8 @@ int main(int argc, char *argv[])
if (!setup_auto_unmount_only && unmount)
goto do_unmount;
- commfd = getenv(FUSE_COMMFD_ENV);
+ if(commfd == NULL)
+ commfd = getenv(FUSE_COMMFD_ENV);
if (commfd == NULL) {
fprintf(stderr, "%s: old style mounting not supported\n",
progname);