[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[PATCH v5 4/8] util: refactor qemu_open_old to split off variadic args h
From: |
Daniel P . Berrangé |
Subject: |
[PATCH v5 4/8] util: refactor qemu_open_old to split off variadic args handling |
Date: |
Wed, 2 Sep 2020 18:09:09 +0100 |
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.
Signed-off-by: Daniel P. Berrangé <berrange@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"
/* 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)) {
--
2.26.2
- [PATCH v5 0/8] block: improve error reporting for unsupported O_DIRECT, Daniel P . Berrangé, 2020/09/02
- [PATCH v5 1/8] monitor: simplify functions for getting a dup'd fdset entry, Daniel P . Berrangé, 2020/09/02
- [PATCH v5 2/8] util: split off a helper for dealing with O_CLOEXEC flag, Daniel P . Berrangé, 2020/09/02
- [PATCH v5 3/8] util: rename qemu_open() to qemu_open_old(), Daniel P . Berrangé, 2020/09/02
- [PATCH v5 4/8] util: refactor qemu_open_old to split off variadic args handling,
Daniel P . Berrangé <=
- [PATCH v5 5/8] util: add Error object for qemu_open_internal error reporting, Daniel P . Berrangé, 2020/09/02
- [PATCH v5 7/8] util: give a specific error message when O_DIRECT doesn't work, Daniel P . Berrangé, 2020/09/02
- [PATCH v5 6/8] util: introduce qemu_open and qemu_create with error reporting, Daniel P . Berrangé, 2020/09/02
- [PATCH v5 8/8] block/file: switch to use qemu_open/qemu_create for improved errors, Daniel P . Berrangé, 2020/09/02