Files
meta-openembedded/meta-oe/recipes-support/lvm2/files/0001-implement-libc-specific-reopen_stream.patch
Peter Marko 7d22831770 lvm2: upgrade 2.03.38 -> 2.03.39
Added tag to SRC_URI.

Release notes [1]:

Add lvmlockd compare and write, index man pages, and a lot of fixes.
* Add atomic leases using Compare and Write (CAW) to lvmlockd.
* Add lvm-index(7), lvm-categories(7) and lvm-args(7) man pages.
* Use temporary activations for integrity, writecache, thin and VDO pool conv
  preventing interference.
* Fix `vgreduce --removemissing --force` infinite loop for raid/mirror snapshot.
* Improve RAID LV health report to distinguish 'refresh needed' from 'repair needed'.
* Support `--interval +N` to delay first poll in pvmove and lvpoll.
* Show active cache mode in kernel table line with `lvs -o kernel_cache_mode`.
* Reject lvreduce of CoW snapshot COW store when it would truncate exception data.
* Skip filesystem resize handling for CoW snapshot COW store LVs in lvresize.
* Fix vgsplit to not fail on no active LV on a PV being split to an existing VG.
* Preserve file desciptors with CLOEXEC opened in library constructors.
* Add lvmpolld 'cmd' log keyword to enable verbose lvpoll output.
* Add `activate_lv_temporary()` to consolidate `LV_TEMPORARY` and sync handling.
* Add missing sync in `add_mirror_log()` and `activate_and_wipe_lv_list()`.
* Fix cachevol cmeta/cdata device offsets.
* Fix pofile generation to include SOURCES2 binaries and update xgettext options.

[1] https://github.com/lvmteam/lvm2/releases/tag/v2_03_39

Signed-off-by: Peter Marko <peter.marko@siemens.com>
Signed-off-by: Khem Raj <khem.raj@oss.qualcomm.com>
2026-03-23 13:34:20 -07:00

78 lines
2.3 KiB
Diff

From 65a04547541894b3ec56bd70510b164810cd64b3 Mon Sep 17 00:00:00 2001
From: Dengke Du <dengke.du@windriver.com>
Date: Tue, 25 Oct 2016 11:49:40 +0000
Subject: [PATCH] implement libc specific reopen_stream
musl defines stdin/stdio/stderr as constant types which means
we can not assign to them as we are doing here but works ok with glibc
therefore abstract out the _reopen_stream definition depending upon if
we are using glibc or otherwise
Origin:
http://git.alpinelinux.org/cgit/aports/tree/main/lvm2/fix-stdio-usage.patch
Signed-off-by: Khem Raj <raj.khem@gmail.com>
Signed-off-by: Dengke Du <dengke.du@windriver.com>
Upstream-Status: Pending
---
lib/log/log.c | 6 ++++++
tools/lvmcmdline.c | 6 +++---
2 files changed, 9 insertions(+), 3 deletions(-)
diff --git a/lib/log/log.c b/lib/log/log.c
index 90905e629..ed69662d0 100644
--- a/lib/log/log.c
+++ b/lib/log/log.c
@@ -165,6 +165,7 @@ static void _check_and_replace_standard_log_streams(FILE *old_stream, FILE *new_
* Close and reopen standard stream on file descriptor fd.
*/
int reopen_standard_stream(FILE **stream, const char *mode)
+#ifdef __GLIBC__
{
int fd, fd_copy, new_fd;
const char *name;
@@ -211,6 +212,11 @@ int reopen_standard_stream(FILE **stream, const char *mode)
*stream = new_stream;
return 1;
}
+#else
+{
+ return (freopen(NULL, mode, *stream) != NULL);
+}
+#endif
void init_log_fn(lvm2_log_fn_t log_fn)
{
diff --git a/tools/lvmcmdline.c b/tools/lvmcmdline.c
index 22ae1e3bb..b0928bc04 100644
--- a/tools/lvmcmdline.c
+++ b/tools/lvmcmdline.c
@@ -3427,7 +3427,7 @@ static int _check_standard_fds(void)
int err = is_valid_fd(STDERR_FILENO);
if (!is_valid_fd(STDIN_FILENO) &&
- !(stdin = fopen(_PATH_DEVNULL, "r"))) {
+ !freopen(_PATH_DEVNULL, "r", stdin)) {
if (err)
perror("stdin stream open");
else
@@ -3437,7 +3437,7 @@ static int _check_standard_fds(void)
}
if (!is_valid_fd(STDOUT_FILENO) &&
- !(stdout = fopen(_PATH_DEVNULL, "w"))) {
+ !freopen(_PATH_DEVNULL, "w", stdout)) {
if (err)
perror("stdout stream open");
/* else no stdout */
@@ -3445,7 +3445,7 @@ static int _check_standard_fds(void)
}
if (!is_valid_fd(STDERR_FILENO) &&
- !(stderr = fopen(_PATH_DEVNULL, "w"))) {
+ !freopen(_PATH_DEVNULL, "w", stderr)) {
printf("stderr stream open: %s\n",
strerror(errno));
return 0;