From: Stefan Hajnoczi <stefa...@redhat.com> Classic FUSE file system daemons take a mountpoint argument but virtiofsd exposes a vhost-user UNIX domain socket instead. The mountpoint argument is not used by virtiofsd but the user is still required to pass a dummy argument on the command-line.
Remove the mountpoint argument to clean up the command-line. Signed-off-by: Stefan Hajnoczi <stefa...@redhat.com> --- tools/virtiofsd/fuse_lowlevel.c | 2 +- tools/virtiofsd/fuse_lowlevel.h | 4 +--- tools/virtiofsd/helper.c | 20 +++----------------- tools/virtiofsd/passthrough_ll.c | 12 ++---------- 4 files changed, 7 insertions(+), 31 deletions(-) diff --git a/tools/virtiofsd/fuse_lowlevel.c b/tools/virtiofsd/fuse_lowlevel.c index 42feee5c1c..20037eef67 100644 --- a/tools/virtiofsd/fuse_lowlevel.c +++ b/tools/virtiofsd/fuse_lowlevel.c @@ -2479,7 +2479,7 @@ out1: return NULL; } -int fuse_session_mount(struct fuse_session *se, const char *mountpoint) +int fuse_session_mount(struct fuse_session *se) { int fd; diff --git a/tools/virtiofsd/fuse_lowlevel.h b/tools/virtiofsd/fuse_lowlevel.h index 85cc027382..17899e012a 100644 --- a/tools/virtiofsd/fuse_lowlevel.h +++ b/tools/virtiofsd/fuse_lowlevel.h @@ -1864,7 +1864,6 @@ struct fuse_cmdline_opts { int foreground; int debug; int nodefault_subtype; - char *mountpoint; int show_version; int show_help; int clone_fd; @@ -1926,12 +1925,11 @@ struct fuse_session *fuse_session_new(struct fuse_args *args, /** * Mount a FUSE file system. * - * @param mountpoint the mount point path * @param se session object * * @return 0 on success, -1 on failure. **/ -int fuse_session_mount(struct fuse_session *se, const char *mountpoint); +int fuse_session_mount(struct fuse_session *se); /** * Enter a single threaded, blocking event loop. diff --git a/tools/virtiofsd/helper.c b/tools/virtiofsd/helper.c index e077943558..d8c42401a7 100644 --- a/tools/virtiofsd/helper.c +++ b/tools/virtiofsd/helper.c @@ -146,27 +146,13 @@ void fuse_cmdline_help(void) static int fuse_helper_opt_proc(void *data, const char *arg, int key, struct fuse_args *outargs) { + (void)data; (void)outargs; - struct fuse_cmdline_opts *opts = data; switch (key) { case FUSE_OPT_KEY_NONOPT: - if (!opts->mountpoint) { - if (fuse_mnt_parse_fuse_fd(arg) != -1) { - return fuse_opt_add_opt(&opts->mountpoint, arg); - } - - char mountpoint[PATH_MAX] = ""; - if (realpath(arg, mountpoint) == NULL) { - fuse_log(FUSE_LOG_ERR, "fuse: bad mount point `%s': %s\n", arg, - strerror(errno)); - return -1; - } - return fuse_opt_add_opt(&opts->mountpoint, mountpoint); - } else { - fuse_log(FUSE_LOG_ERR, "fuse: invalid argument `%s'\n", arg); - return -1; - } + fuse_log(FUSE_LOG_ERR, "fuse: invalid argument `%s'\n", arg); + return -1; default: /* Pass through unknown options */ diff --git a/tools/virtiofsd/passthrough_ll.c b/tools/virtiofsd/passthrough_ll.c index cd399d5c4b..a79ec2c70d 100644 --- a/tools/virtiofsd/passthrough_ll.c +++ b/tools/virtiofsd/passthrough_ll.c @@ -1297,7 +1297,7 @@ int main(int argc, char *argv[]) return 1; } if (opts.show_help) { - printf("usage: %s [options] <mountpoint>\n\n", argv[0]); + printf("usage: %s [options]\n\n", argv[0]); fuse_cmdline_help(); fuse_lowlevel_help(); ret = 0; @@ -1309,13 +1309,6 @@ int main(int argc, char *argv[]) goto err_out1; } - if (opts.mountpoint == NULL) { - printf("usage: %s [options] <mountpoint>\n", argv[0]); - printf(" %s --help\n", argv[0]); - ret = 1; - goto err_out1; - } - if (fuse_opt_parse(&args, &lo, lo_opts, NULL) == -1) { return 1; } @@ -1375,7 +1368,7 @@ int main(int argc, char *argv[]) goto err_out2; } - if (fuse_session_mount(se, opts.mountpoint) != 0) { + if (fuse_session_mount(se) != 0) { goto err_out3; } @@ -1394,7 +1387,6 @@ err_out3: err_out2: fuse_session_destroy(se); err_out1: - free(opts.mountpoint); fuse_opt_free_args(&args); if (lo.root.fd >= 0) { -- 2.23.0