Sign Up
Log In
Log In
or
Sign Up
Places
All Projects
Status Monitor
Collapse sidebar
openSUSE:Step:15-SP4
mdadm.15570
0039-mdadm-force-a-uuid-swap-on-big-endian.patch
Overview
Repositories
Revisions
Requests
Users
Attributes
Meta
File 0039-mdadm-force-a-uuid-swap-on-big-endian.patch of Package mdadm.15570
From 2c2d9c48d2daf0d78d20494c3779c0f6dc4bfa75 Mon Sep 17 00:00:00 2001 From: Nigel Croxon <ncroxon@redhat.com> Date: Tue, 24 Sep 2019 11:39:24 -0400 Subject: [PATCH] mdadm: force a uuid swap on big endian Git-commit: 2c2d9c48d2daf0d78d20494c3779c0f6dc4bfa75 Patch-mainline: mdadm-4.1+ References: jsc#SLE-10078, jsc#SLE-9348 The code path for metadata 0.90 calls a common routine fname_from_uuid that uses metadata 1.2. The code expects member swapuuid to be setup and usable. But it is only setup when using metadata 1.2. Since the metadata 0.90 did not create swapuuid and set it. The test (st->ss == &super1) ? 1 : st->ss->swapuuid fails. The swapuuid is set at compile time based on byte order. Any call based on metadata 0.90 and on big endian processors, the --export uuid will be incorrect. Signed-off-by: Nigel Croxon <ncroxon@redhat.com> Signed-off-by: Jes Sorensen <jsorensen@fb.com> Signed-off-by: Coly Li <colyli@suse.de> --- util.c | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/util.c b/util.c index c26cf5f..64dd409 100644 --- a/util.c +++ b/util.c @@ -685,8 +685,12 @@ char *fname_from_uuid(struct supertype *st, struct mdinfo *info, // work, but can't have it set if we want this printout to match // all the other uuid printouts in super1.c, so we force swapuuid // to 1 to make our printout match the rest of super1 +#if __BYTE_ORDER == BIG_ENDIAN + return __fname_from_uuid(info->uuid, 1, buf, sep); +#else return __fname_from_uuid(info->uuid, (st->ss == &super1) ? 1 : st->ss->swapuuid, buf, sep); +#endif } int check_ext2(int fd, char *name) -- 2.25.0
Locations
Projects
Search
Status Monitor
Help
OpenBuildService.org
Documentation
API Documentation
Code of Conduct
Contact
Support
@OBShq
Terms
openSUSE Build Service is sponsored by
The Open Build Service is an
openSUSE project
.
Sign Up
Log In
Places
Places
All Projects
Status Monitor