Daniel P. Berrangé <berra...@redhat.com> writes: > This simple refactoring prepares for future patches. The variadic args > handling is split from the main bulk of the open logic. The duplicated > calls to open() are removed in favour of updating the "flags" variable > to have O_CLOEXEC.
Drop the second sentence, it is no longer true in this revision. > Signed-off-by: Daniel P. Berrangé <berra...@redhat.com> > --- > util/osdep.c | 25 ++++++++++++++++++------- > 1 file changed, 18 insertions(+), 7 deletions(-) > > diff --git a/util/osdep.c b/util/osdep.c > index 7504c156e8..dd34b58bb7 100644 > --- a/util/osdep.c > +++ b/util/osdep.c > @@ -22,6 +22,7 @@ > * THE SOFTWARE. > */ > #include "qemu/osdep.h" > +#include "qapi/error.h" This patch doesn't use anything from qapi/error.h as far as I can tell. Does the hunk belong to another patch? > > /* Needed early for CONFIG_BSD etc. */ > > @@ -296,10 +297,10 @@ static int qemu_open_cloexec(const char *name, int > flags, mode_t mode) > /* > * Opens a file with FD_CLOEXEC set > */ > -int qemu_open_old(const char *name, int flags, ...) > +static int > +qemu_open_internal(const char *name, int flags, mode_t mode) > { > int ret; > - int mode = 0; > > #ifndef _WIN32 > const char *fdset_id_str; > @@ -324,15 +325,25 @@ int qemu_open_old(const char *name, int flags, ...) > } > #endif > > - if (flags & O_CREAT) { > - va_list ap; > + ret = qemu_open_cloexec(name, flags, mode); > + > + return ret; > +} > + > > - va_start(ap, flags); > +int qemu_open_old(const char *name, int flags, ...) > +{ > + va_list ap; > + mode_t mode = 0; > + int ret; > + > + va_start(ap, flags); > + if (flags & O_CREAT) { > mode = va_arg(ap, int); > - va_end(ap); > } > + va_end(ap); > > - ret = qemu_open_cloexec(name, flags, mode); > + ret = qemu_open_internal(name, flags, mode); > > #ifdef O_DIRECT > if (ret == -1 && errno == EINVAL && (flags & O_DIRECT)) { With the minor inaccuracies tidied up: Reviewed-by: Markus Armbruster <arm...@redhat.com>