On Thu, Mar 03, 2022 at 05:48:11PM +0100, Hanna Reitz wrote: > The daemonizing functions in os-posix (os_daemonize() and > os_setup_post()) only daemonize the process if the static `daemonize` > variable is set. Right now, it can only be set by os_parse_cmd_args(). > > In order to use os_daemonize() and os_setup_post() from the storage > daemon to have it be daemonized, we need some other way to set this > `daemonize` variable, because I would rather not tap into the system > emulator's arg-parsing code. Therefore, this patch adds an > os_set_daemonize() function, which will return an error on os-win32 > (because daemonizing is not supported there). > > Signed-off-by: Hanna Reitz <hre...@redhat.com> > ---
> +++ b/include/sysemu/os-win32.h > @@ -77,6 +77,11 @@ typedef struct { > } qemu_timeval; > int qemu_gettimeofday(qemu_timeval *tp); > > +static inline int os_set_daemonize(bool d) > +{ > + return -ENOTSUP; Should this fail only if d is true? Or will all callers only ever pass true, in which case why do we need the paraemeter? > +} > + > static inline bool is_daemonized(void) > { > return false; > diff --git a/os-posix.c b/os-posix.c > index ae6c9f2a5e..24692c8593 100644 > --- a/os-posix.c > +++ b/os-posix.c > @@ -317,6 +317,12 @@ bool is_daemonized(void) > return daemonize; > } > > +int os_set_daemonize(bool d) > +{ > + daemonize = d; > + return 0; > +} > + > int os_mlock(void) > { > #ifdef HAVE_MLOCKALL > -- > 2.34.1 > > -- Eric Blake, Principal Software Engineer Red Hat, Inc. +1-919-301-3266 Virtualization: qemu.org | libvirt.org