aboutsummaryrefslogtreecommitdiffstats
path: root/meta-filesystems/recipes-utils/xfsprogs/files/xfsprogs-4.12.0-fix_musl.patch
diff options
context:
space:
mode:
Diffstat (limited to 'meta-filesystems/recipes-utils/xfsprogs/files/xfsprogs-4.12.0-fix_musl.patch')
-rw-r--r--meta-filesystems/recipes-utils/xfsprogs/files/xfsprogs-4.12.0-fix_musl.patch117
1 files changed, 0 insertions, 117 deletions
diff --git a/meta-filesystems/recipes-utils/xfsprogs/files/xfsprogs-4.12.0-fix_musl.patch b/meta-filesystems/recipes-utils/xfsprogs/files/xfsprogs-4.12.0-fix_musl.patch
deleted file mode 100644
index efc57e4f69..0000000000
--- a/meta-filesystems/recipes-utils/xfsprogs/files/xfsprogs-4.12.0-fix_musl.patch
+++ /dev/null
@@ -1,117 +0,0 @@
-From 21253610f9ef87db8e2a75b863b7fcfbd0cdb421 Mon Sep 17 00:00:00 2001
-From: "Darrick J. Wong" <darrick.wong@oracle.com>
-Date: Tue, 25 Jul 2017 13:45:01 -0500
-Subject: [PATCH] In patch 4944defad4 ("xfs_db: redirect printfs when
- metadumping to stdout"), we solved the problem of xfs_db printfs ending up in
- the metadump stream by reassigning stdout for the duration of a stdout
- metadump. Unfortunately, musl doesn't allow stdout to be reassigned (in
- their view "extern FILE *stdout" means "extern FILE * const stdout"), so we
- abandon the old approach in favor of playing games with dup() to switch the
- raw file descriptors.
-
-While we're at it, fix a regression where an unconverted outf test
-allows progress info to end up in the metadump stream.
-
-Signed-off-by: Darrick J. Wong <darrick.wong@oracle.com>
----
- db/metadump.c | 47 ++++++++++++++++++++++++++++++++++++-----------
- 1 file changed, 36 insertions(+), 11 deletions(-)
-
-diff --git a/db/metadump.c b/db/metadump.c
-index 96641e0..4e2f648 100644
---- a/db/metadump.c
-+++ b/db/metadump.c
-@@ -78,6 +78,7 @@ static int obfuscate = 1;
- static int zero_stale_data = 1;
- static int show_warnings = 0;
- static int progress_since_warning = 0;
-+static bool stdout_metadump;
-
- void
- metadump_init(void)
-@@ -137,7 +138,7 @@ print_progress(const char *fmt, ...)
- va_end(ap);
- buf[sizeof(buf)-1] = '\0';
-
-- f = (outf == stdout) ? stderr : stdout;
-+ f = stdout_metadump ? stderr : stdout;
- fprintf(f, "\r%-59s", buf);
- fflush(f);
- progress_since_warning = 1;
-@@ -2750,7 +2751,8 @@ metadump_f(
- xfs_agnumber_t agno;
- int c;
- int start_iocur_sp;
-- bool stdout_metadump = false;
-+ int outfd = -1;
-+ int ret;
- char *p;
-
- exitcode = 1;
-@@ -2870,16 +2872,35 @@ metadump_f(
- * metadump operation so that dbprintf and other messages
- * are sent to the console instead of polluting the
- * metadump stream.
-+ *
-+ * We get to do this the hard way because musl doesn't
-+ * allow reassignment of stdout.
- */
-- outf = stdout;
-- stdout = stderr;
-+ fflush(stdout);
-+ outfd = dup(STDOUT_FILENO);
-+ if (outfd < 0) {
-+ perror("opening dump stream");
-+ goto out;
-+ }
-+ ret = dup2(STDERR_FILENO, STDOUT_FILENO);
-+ if (ret < 0) {
-+ perror("redirecting stdout");
-+ close(outfd);
-+ goto out;
-+ }
-+ outf = fdopen(outfd, "a");
-+ if (outf == NULL) {
-+ fprintf(stderr, "cannot create dump stream\n");
-+ dup2(outfd, 1);
-+ close(outfd);
-+ goto out;
-+ }
- stdout_metadump = true;
- } else {
- outf = fopen(argv[optind], "wb");
- if (outf == NULL) {
- print_warning("cannot create dump file");
-- free(metablock);
-- return 0;
-+ goto out;
- }
- }
-
-@@ -2907,15 +2928,19 @@ metadump_f(
- if (progress_since_warning)
- fputc('\n', stdout_metadump ? stderr : stdout);
-
-- if (stdout_metadump)
-- stdout = outf;
-- else
-- fclose(outf);
-+ if (stdout_metadump) {
-+ fflush(outf);
-+ fflush(stdout);
-+ ret = dup2(outfd, STDOUT_FILENO);
-+ if (ret < 0)
-+ perror("un-redirecting stdout");
-+ }
-+ fclose(outf);
-
- /* cleanup iocur stack */
- while (iocur_sp > start_iocur_sp)
- pop_cur();
--
-+out:
- free(metablock);
-
- return 0;
---
-2.13.3