aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMarc-André Lureau <marcandre.lureau@redhat.com>2022-03-29 15:21:00 +0400
committerMarc-André Lureau <marcandre.lureau@redhat.com>2022-05-03 15:17:56 +0400
commita7241974ceca3a783ab010f3fd1926fa42346a34 (patch)
treec34b1323dd4a96d92131dc9caf16c89c04ee5556
parentad24b679d215c2f8eaab6125a68e864c2a5d7dde (diff)
Replace qemu_pipe() with g_unix_open_pipe()
GLib g_unix_open_pipe() is essentially like qemu_pipe(), available since 2.30. Signed-off-by: Marc-André Lureau <marcandre.lureau@redhat.com> Reviewed-by: Richard Henderson <richard.henderson@linaro.org>
-rw-r--r--include/qemu/osdep.h4
-rw-r--r--qemu-nbd.c5
-rw-r--r--util/event_notifier-posix.c2
-rw-r--r--util/oslib-posix.c22
4 files changed, 4 insertions, 29 deletions
diff --git a/include/qemu/osdep.h b/include/qemu/osdep.h
index 52d81c027b..1c1e7eca98 100644
--- a/include/qemu/osdep.h
+++ b/include/qemu/osdep.h
@@ -547,10 +547,6 @@ static inline void qemu_timersub(const struct timeval *val1,
ssize_t qemu_write_full(int fd, const void *buf, size_t count)
G_GNUC_WARN_UNUSED_RESULT;
-#ifndef _WIN32
-int qemu_pipe(int pipefd[2]);
-#endif
-
void qemu_set_cloexec(int fd);
/* Return a dynamically allocated directory path that is appropriate for storing
diff --git a/qemu-nbd.c b/qemu-nbd.c
index db63980df1..2382b5042a 100644
--- a/qemu-nbd.c
+++ b/qemu-nbd.c
@@ -909,13 +909,14 @@ int main(int argc, char **argv)
if ((device && !verbose) || fork_process) {
#ifndef WIN32
+ g_autoptr(GError) err = NULL;
int stderr_fd[2];
pid_t pid;
int ret;
- if (qemu_pipe(stderr_fd) < 0) {
+ if (!g_unix_open_pipe(stderr_fd, FD_CLOEXEC, &err)) {
error_report("Error setting up communication pipe: %s",
- strerror(errno));
+ err->message);
exit(EXIT_FAILURE);
}
diff --git a/util/event_notifier-posix.c b/util/event_notifier-posix.c
index 2aa14eabb3..76420c5b56 100644
--- a/util/event_notifier-posix.c
+++ b/util/event_notifier-posix.c
@@ -49,7 +49,7 @@ int event_notifier_init(EventNotifier *e, int active)
if (errno != ENOSYS) {
return -errno;
}
- if (qemu_pipe(fds) < 0) {
+ if (!g_unix_open_pipe(fds, FD_CLOEXEC, NULL)) {
return -errno;
}
if (!g_unix_set_fd_nonblocking(fds[0], true, NULL)) {
diff --git a/util/oslib-posix.c b/util/oslib-posix.c
index 289efca3fa..2a6f6248ad 100644
--- a/util/oslib-posix.c
+++ b/util/oslib-posix.c
@@ -274,28 +274,6 @@ void qemu_set_cloexec(int fd)
assert(f != -1);
}
-/*
- * Creates a pipe with FD_CLOEXEC set on both file descriptors
- */
-int qemu_pipe(int pipefd[2])
-{
- int ret;
-
-#ifdef CONFIG_PIPE2
- ret = pipe2(pipefd, O_CLOEXEC);
- if (ret != -1 || errno != ENOSYS) {
- return ret;
- }
-#endif
- ret = pipe(pipefd);
- if (ret == 0) {
- qemu_set_cloexec(pipefd[0]);
- qemu_set_cloexec(pipefd[1]);
- }
-
- return ret;
-}
-
char *
qemu_get_local_state_dir(void)
{