[PATCH 028/104] virtiofsd: make -f (foreground) the default

Dr. David Alan Gilbert (git) posted 104 patches 6 years ago
There is a newer version of this series
[PATCH 028/104] virtiofsd: make -f (foreground) the default
Posted by Dr. David Alan Gilbert (git) 6 years ago
From: Stefan Hajnoczi <stefanha@redhat.com>

According to vhost-user.rst "Backend program conventions", backend
programs should run in the foregound by default.  Follow the
conventions so libvirt and other management tools can control virtiofsd
in a standard way.

Signed-off-by: Stefan Hajnoczi <stefanha@redhat.com>
---
 tools/virtiofsd/helper.c | 8 ++++++++
 1 file changed, 8 insertions(+)

diff --git a/tools/virtiofsd/helper.c b/tools/virtiofsd/helper.c
index 48e38a7963..d4fff4fa53 100644
--- a/tools/virtiofsd/helper.c
+++ b/tools/virtiofsd/helper.c
@@ -28,6 +28,11 @@
     {                                               \
         t, offsetof(struct fuse_cmdline_opts, p), 1 \
     }
+#define FUSE_HELPER_OPT_VALUE(t, p, v)              \
+    {                                               \
+        t, offsetof(struct fuse_cmdline_opts, p), v \
+    }
+
 
 static const struct fuse_opt fuse_helper_opts[] = {
     FUSE_HELPER_OPT("-h", show_help),
@@ -41,6 +46,7 @@ static const struct fuse_opt fuse_helper_opts[] = {
     FUSE_OPT_KEY("-d", FUSE_OPT_KEY_KEEP),
     FUSE_OPT_KEY("debug", FUSE_OPT_KEY_KEEP),
     FUSE_HELPER_OPT("-f", foreground),
+    FUSE_HELPER_OPT_VALUE("--daemonize", foreground, 0),
     FUSE_HELPER_OPT("-s", singlethread),
     FUSE_HELPER_OPT("fsname=", nodefault_subtype),
     FUSE_OPT_KEY("fsname=", FUSE_OPT_KEY_KEEP),
@@ -132,6 +138,7 @@ void fuse_cmdline_help(void)
            "    -V   --version             print version\n"
            "    -d   -o debug              enable debug output (implies -f)\n"
            "    -f                         foreground operation\n"
+           "    --daemonize                run in background\n"
            "    -s                         disable multi-threaded operation\n"
            "    -o clone_fd                use separate fuse device fd for "
            "each thread\n"
@@ -163,6 +170,7 @@ int fuse_parse_cmdline(struct fuse_args *args, struct fuse_cmdline_opts *opts)
     memset(opts, 0, sizeof(struct fuse_cmdline_opts));
 
     opts->max_idle_threads = 10;
+    opts->foreground = 1;
 
     if (fuse_opt_parse(args, opts, fuse_helper_opts, fuse_helper_opt_proc) ==
         -1) {
-- 
2.23.0


Re: [PATCH 028/104] virtiofsd: make -f (foreground) the default
Posted by Daniel P. Berrangé 5 years, 11 months ago
On Thu, Dec 12, 2019 at 04:37:48PM +0000, Dr. David Alan Gilbert (git) wrote:
> From: Stefan Hajnoczi <stefanha@redhat.com>
> 
> According to vhost-user.rst "Backend program conventions", backend
> programs should run in the foregound by default.  Follow the
> conventions so libvirt and other management tools can control virtiofsd
> in a standard way.
> 
> Signed-off-by: Stefan Hajnoczi <stefanha@redhat.com>
> ---
>  tools/virtiofsd/helper.c | 8 ++++++++
>  1 file changed, 8 insertions(+)

Reviewed-by: Daniel P. Berrangé <berrange@redhat.com>


> 
> diff --git a/tools/virtiofsd/helper.c b/tools/virtiofsd/helper.c
> index 48e38a7963..d4fff4fa53 100644
> --- a/tools/virtiofsd/helper.c
> +++ b/tools/virtiofsd/helper.c
> @@ -28,6 +28,11 @@
>      {                                               \
>          t, offsetof(struct fuse_cmdline_opts, p), 1 \
>      }
> +#define FUSE_HELPER_OPT_VALUE(t, p, v)              \
> +    {                                               \
> +        t, offsetof(struct fuse_cmdline_opts, p), v \
> +    }
> +
>  
>  static const struct fuse_opt fuse_helper_opts[] = {
>      FUSE_HELPER_OPT("-h", show_help),
> @@ -41,6 +46,7 @@ static const struct fuse_opt fuse_helper_opts[] = {
>      FUSE_OPT_KEY("-d", FUSE_OPT_KEY_KEEP),
>      FUSE_OPT_KEY("debug", FUSE_OPT_KEY_KEEP),
>      FUSE_HELPER_OPT("-f", foreground),
> +    FUSE_HELPER_OPT_VALUE("--daemonize", foreground, 0),
>      FUSE_HELPER_OPT("-s", singlethread),
>      FUSE_HELPER_OPT("fsname=", nodefault_subtype),
>      FUSE_OPT_KEY("fsname=", FUSE_OPT_KEY_KEEP),
> @@ -132,6 +138,7 @@ void fuse_cmdline_help(void)
>             "    -V   --version             print version\n"
>             "    -d   -o debug              enable debug output (implies -f)\n"
>             "    -f                         foreground operation\n"
> +           "    --daemonize                run in background\n"

Wonder if there is sense in documenting '--daemonize' as a standard
for backend programs, even if QEMU/libvirt don't need it.


Regards,
Daniel
-- 
|: https://berrange.com      -o-    https://www.flickr.com/photos/dberrange :|
|: https://libvirt.org         -o-            https://fstop138.berrange.com :|
|: https://entangle-photo.org    -o-    https://www.instagram.com/dberrange :|