Complete Yocto mirror with license table for TQMa6UL (2038-compliance)
- 264 license table entries with exact download URLs (224/264 resolved) - Complete sources/ directory with all BitBake recipes - Build configuration: tqma6ul-multi-mba6ulx, spaetzle (musl) - Full traceability for Softwarefreigabeantrag - GCC 13.4.0, Linux 6.6.102, U-Boot 2023.04, musl 1.2.4 - License distribution: GPL-2.0 (24), MIT (23), GPL-2.0+ (18), BSD-3 (16)
This commit is contained in:
@@ -0,0 +1,148 @@
|
||||
From ca458f4dcc4de9403298f67543466ce4bbc8f8ae Mon Sep 17 00:00:00 2001
|
||||
From: Logan Gunthorpe <logang@deltatee.com>
|
||||
Date: Wed, 22 Jun 2022 14:25:07 -0600
|
||||
Subject: [PATCH 1/4] DDF: Cleanup validate_geometry_ddf_container()
|
||||
|
||||
Move the function up so that the function declaration is not necessary
|
||||
and remove the unused arguments to the function.
|
||||
|
||||
No functional changes are intended but will help with a bug fix in the
|
||||
next patch.
|
||||
|
||||
Signed-off-by: Logan Gunthorpe <logang@deltatee.com>
|
||||
Acked-by: Mariusz Tkaczyk <mariusz.tkaczyk@linux.intel.com>
|
||||
Signed-off-by: Jes Sorensen <jes@trained-monkey.org>
|
||||
|
||||
Upstream-Status: Backport
|
||||
|
||||
Reference to upstream patch:
|
||||
https://git.kernel.org/pub/scm/utils/mdadm/mdadm.git/commit/?id=679bd9508a30
|
||||
|
||||
Signed-off-by: Ovidiu Panait <ovidiu.panait@windriver.com>
|
||||
---
|
||||
super-ddf.c | 88 ++++++++++++++++++++++++-----------------------------
|
||||
1 file changed, 39 insertions(+), 49 deletions(-)
|
||||
|
||||
diff --git a/super-ddf.c b/super-ddf.c
|
||||
index 3f304cd..65cf727 100644
|
||||
--- a/super-ddf.c
|
||||
+++ b/super-ddf.c
|
||||
@@ -503,13 +503,6 @@ struct ddf_super {
|
||||
static int load_super_ddf_all(struct supertype *st, int fd,
|
||||
void **sbp, char *devname);
|
||||
static int get_svd_state(const struct ddf_super *, const struct vcl *);
|
||||
-static int
|
||||
-validate_geometry_ddf_container(struct supertype *st,
|
||||
- int level, int layout, int raiddisks,
|
||||
- int chunk, unsigned long long size,
|
||||
- unsigned long long data_offset,
|
||||
- char *dev, unsigned long long *freesize,
|
||||
- int verbose);
|
||||
|
||||
static int validate_geometry_ddf_bvd(struct supertype *st,
|
||||
int level, int layout, int raiddisks,
|
||||
@@ -3322,6 +3315,42 @@ static int reserve_space(struct supertype *st, int raiddisks,
|
||||
return 1;
|
||||
}
|
||||
|
||||
+static int
|
||||
+validate_geometry_ddf_container(struct supertype *st,
|
||||
+ int level, int raiddisks,
|
||||
+ unsigned long long data_offset,
|
||||
+ char *dev, unsigned long long *freesize,
|
||||
+ int verbose)
|
||||
+{
|
||||
+ int fd;
|
||||
+ unsigned long long ldsize;
|
||||
+
|
||||
+ if (level != LEVEL_CONTAINER)
|
||||
+ return 0;
|
||||
+ if (!dev)
|
||||
+ return 1;
|
||||
+
|
||||
+ fd = dev_open(dev, O_RDONLY|O_EXCL);
|
||||
+ if (fd < 0) {
|
||||
+ if (verbose)
|
||||
+ pr_err("ddf: Cannot open %s: %s\n",
|
||||
+ dev, strerror(errno));
|
||||
+ return 0;
|
||||
+ }
|
||||
+ if (!get_dev_size(fd, dev, &ldsize)) {
|
||||
+ close(fd);
|
||||
+ return 0;
|
||||
+ }
|
||||
+ close(fd);
|
||||
+ if (freesize) {
|
||||
+ *freesize = avail_size_ddf(st, ldsize >> 9, INVALID_SECTORS);
|
||||
+ if (*freesize == 0)
|
||||
+ return 0;
|
||||
+ }
|
||||
+
|
||||
+ return 1;
|
||||
+}
|
||||
+
|
||||
static int validate_geometry_ddf(struct supertype *st,
|
||||
int level, int layout, int raiddisks,
|
||||
int *chunk, unsigned long long size,
|
||||
@@ -3347,11 +3376,9 @@ static int validate_geometry_ddf(struct supertype *st,
|
||||
level = LEVEL_CONTAINER;
|
||||
if (level == LEVEL_CONTAINER) {
|
||||
/* Must be a fresh device to add to a container */
|
||||
- return validate_geometry_ddf_container(st, level, layout,
|
||||
- raiddisks, *chunk,
|
||||
- size, data_offset, dev,
|
||||
- freesize,
|
||||
- verbose);
|
||||
+ return validate_geometry_ddf_container(st, level, raiddisks,
|
||||
+ data_offset, dev,
|
||||
+ freesize, verbose);
|
||||
}
|
||||
|
||||
if (!dev) {
|
||||
@@ -3449,43 +3476,6 @@ static int validate_geometry_ddf(struct supertype *st,
|
||||
return 1;
|
||||
}
|
||||
|
||||
-static int
|
||||
-validate_geometry_ddf_container(struct supertype *st,
|
||||
- int level, int layout, int raiddisks,
|
||||
- int chunk, unsigned long long size,
|
||||
- unsigned long long data_offset,
|
||||
- char *dev, unsigned long long *freesize,
|
||||
- int verbose)
|
||||
-{
|
||||
- int fd;
|
||||
- unsigned long long ldsize;
|
||||
-
|
||||
- if (level != LEVEL_CONTAINER)
|
||||
- return 0;
|
||||
- if (!dev)
|
||||
- return 1;
|
||||
-
|
||||
- fd = dev_open(dev, O_RDONLY|O_EXCL);
|
||||
- if (fd < 0) {
|
||||
- if (verbose)
|
||||
- pr_err("ddf: Cannot open %s: %s\n",
|
||||
- dev, strerror(errno));
|
||||
- return 0;
|
||||
- }
|
||||
- if (!get_dev_size(fd, dev, &ldsize)) {
|
||||
- close(fd);
|
||||
- return 0;
|
||||
- }
|
||||
- close(fd);
|
||||
- if (freesize) {
|
||||
- *freesize = avail_size_ddf(st, ldsize >> 9, INVALID_SECTORS);
|
||||
- if (*freesize == 0)
|
||||
- return 0;
|
||||
- }
|
||||
-
|
||||
- return 1;
|
||||
-}
|
||||
-
|
||||
static int validate_geometry_ddf_bvd(struct supertype *st,
|
||||
int level, int layout, int raiddisks,
|
||||
int *chunk, unsigned long long size,
|
||||
--
|
||||
2.39.1
|
||||
|
||||
@@ -0,0 +1,52 @@
|
||||
From 82c893bb9e01f914a6bdef1bef943af746cfc3e1 Mon Sep 17 00:00:00 2001
|
||||
From: Khem Raj <raj.khem@gmail.com>
|
||||
Date: Sun, 15 Jan 2023 12:42:18 -0800
|
||||
Subject: [PATCH] Define alignof using _Alignof when using C11 or newer
|
||||
|
||||
WG14 N2350 made very clear that it is an UB having type definitions
|
||||
within "offsetof" [1]. This patch enhances the implementation of macro
|
||||
alignof_slot to use builtin "_Alignof" to avoid undefined behavior on
|
||||
when using std=c11 or newer
|
||||
|
||||
clang 16+ has started to flag this [2]
|
||||
|
||||
Fixes build when using -std >= gnu11 and using clang16+
|
||||
|
||||
Older compilers gcc < 4.9 or clang < 8 has buggy _Alignof even though it
|
||||
may support C11, exclude those compilers too
|
||||
|
||||
[1] https://www.open-std.org/jtc1/sc22/wg14/www/docs/n2350.htm
|
||||
[2] https://reviews.llvm.org/D133574
|
||||
|
||||
Upstream-Status: Submitted [https://lore.kernel.org/linux-raid/20230118083236.24418-1-raj.khem@gmail.com/T/#u]
|
||||
Signed-off-by: Khem Raj <raj.khem@gmail.com>
|
||||
---
|
||||
sha1.c | 12 +++++++++++-
|
||||
1 file changed, 11 insertions(+), 1 deletion(-)
|
||||
|
||||
diff --git a/sha1.c b/sha1.c
|
||||
index 89b32f4..1e4ad5d 100644
|
||||
--- a/sha1.c
|
||||
+++ b/sha1.c
|
||||
@@ -229,7 +229,17 @@ sha1_process_bytes (const void *buffer, size_t len, struct sha1_ctx *ctx)
|
||||
if (len >= 64)
|
||||
{
|
||||
#if !_STRING_ARCH_unaligned
|
||||
-# define alignof(type) offsetof (struct { char c; type x; }, x)
|
||||
+/* GCC releases before GCC 4.9 had a bug in _Alignof. See GCC bug 52023
|
||||
+ <https://gcc.gnu.org/bugzilla/show_bug.cgi?id=52023>.
|
||||
+ clang versions < 8.0.0 have the same bug. */
|
||||
+# if (!defined __STDC_VERSION__ || __STDC_VERSION__ < 201112 \
|
||||
+ || (defined __GNUC__ && __GNUC__ < 4 + (__GNUC_MINOR__ < 9) \
|
||||
+ && !defined __clang__) \
|
||||
+ || (defined __clang__ && __clang_major__ < 8))
|
||||
+# define alignof(type) offsetof (struct { char c; type x; }, x)
|
||||
+# else
|
||||
+# define alignof(type) _Alignof(type)
|
||||
+# endif
|
||||
# define UNALIGNED_P(p) (((size_t) p) % alignof (sha1_uint32) != 0)
|
||||
if (UNALIGNED_P (buffer))
|
||||
while (len > 64)
|
||||
--
|
||||
2.39.0
|
||||
|
||||
@@ -0,0 +1,74 @@
|
||||
From 969fbb35e40100f599d4a9781911251f21792698 Mon Sep 17 00:00:00 2001
|
||||
From: Changqing Li <changqing.li@windriver.com>
|
||||
Date: Thu, 27 Jan 2022 17:53:01 +0800
|
||||
Subject: [PATCH] Fix parsing of "-r" in monitor/manager mode
|
||||
|
||||
This revert commit 546047688e1 [mdadm: fix coredump of mdadm --monitor
|
||||
-r], and fix the coredump issue of 'mdadm --monitor -r'.
|
||||
|
||||
commit 546047688e1 make -r not work in manager mode, and testcase
|
||||
00multipath failed.
|
||||
|
||||
Upstream-Status: Submitted [send to maintainer jsorensen@fb.com]
|
||||
|
||||
Signed-off-by: Changqing Li <changqing.li@windriver.com>
|
||||
|
||||
---
|
||||
ReadMe.c | 8 +++++---
|
||||
mdadm.c | 2 ++
|
||||
mdadm.h | 1 +
|
||||
3 files changed, 8 insertions(+), 3 deletions(-)
|
||||
|
||||
diff --git a/ReadMe.c b/ReadMe.c
|
||||
index 8139976..070eea5 100644
|
||||
--- a/ReadMe.c
|
||||
+++ b/ReadMe.c
|
||||
@@ -81,11 +81,13 @@ char Version[] = "mdadm - v" VERSION " - " VERS_DATE EXTRAVERSION "\n";
|
||||
* found, it is started.
|
||||
*/
|
||||
|
||||
-char short_options[]="-ABCDEFGIQhVXYWZ:vqbc:i:l:p:m:r:n:x:u:c:d:z:U:N:safRSow1tye:k";
|
||||
+char short_options[]="-ABCDEFGIQhVXYWZ:vqbc:i:l:p:m:n:x:u:c:d:z:U:N:sarfRSow1tye:k:";
|
||||
char short_bitmap_options[]=
|
||||
- "-ABCDEFGIQhVXYWZ:vqb:c:i:l:p:m:r:n:x:u:c:d:z:U:N:sarfRSow1tye:k:";
|
||||
+ "-ABCDEFGIQhVXYWZ:vqb:c:i:l:p:m:n:x:u:c:d:z:U:N:sarfRSow1tye:k:";
|
||||
char short_bitmap_auto_options[]=
|
||||
- "-ABCDEFGIQhVXYWZ:vqb:c:i:l:p:m:r:n:x:u:c:d:z:U:N:sa:rfRSow1tye:k:";
|
||||
+ "-ABCDEFGIQhVXYWZ:vqb:c:i:l:p:m:n:x:u:c:d:z:U:N:sa:rfRSow1tye:k:";
|
||||
+char short_increment_options[]=
|
||||
+ "-ABCDEFGIQhVXYWZ:vqbc:i:l:r:p:m:n:x:u:c:d:z:U:N:safRSow1tye:k:";
|
||||
|
||||
struct option long_options[] = {
|
||||
{"manage", 0, 0, ManageOpt},
|
||||
diff --git a/mdadm.c b/mdadm.c
|
||||
index 26299b2..2a3b2ee 100644
|
||||
--- a/mdadm.c
|
||||
+++ b/mdadm.c
|
||||
@@ -227,6 +227,7 @@ int main(int argc, char *argv[])
|
||||
shortopt = short_bitmap_auto_options;
|
||||
break;
|
||||
case 'F': newmode = MONITOR;
|
||||
+ shortopt = short_increment_options;
|
||||
break;
|
||||
case 'G': newmode = GROW;
|
||||
shortopt = short_bitmap_options;
|
||||
@@ -268,6 +269,7 @@ int main(int argc, char *argv[])
|
||||
|
||||
case NoSharing:
|
||||
newmode = MONITOR;
|
||||
+ shortopt = short_increment_options;
|
||||
break;
|
||||
}
|
||||
if (mode && newmode == mode) {
|
||||
diff --git a/mdadm.h b/mdadm.h
|
||||
index ecfc137..42148dd 100644
|
||||
--- a/mdadm.h
|
||||
+++ b/mdadm.h
|
||||
@@ -421,6 +421,7 @@ enum mode {
|
||||
extern char short_options[];
|
||||
extern char short_bitmap_options[];
|
||||
extern char short_bitmap_auto_options[];
|
||||
+extern char short_increment_options[];
|
||||
extern struct option long_options[];
|
||||
extern char Version[], Usage[], Help[], OptionHelp[],
|
||||
*mode_help[],
|
||||
@@ -0,0 +1,31 @@
|
||||
From a9166bf422da1001bac9cc819386bf39b7cd1b73 Mon Sep 17 00:00:00 2001
|
||||
From: "Maxin B. John" <maxin.john@intel.com>
|
||||
Date: Tue, 9 Feb 2016 11:44:01 +0200
|
||||
Subject: [PATCH] Fix the path of corosync and dlm header files check
|
||||
|
||||
Original Makefile will check headers on host instead of sysroot.
|
||||
Fix it.
|
||||
|
||||
Upstream-Status: Inappropriate [Yocto specific]
|
||||
|
||||
Signed-off-by: Maxin B. John <maxin.john@intel.com>
|
||||
|
||||
---
|
||||
Makefile | 4 ++--
|
||||
1 file changed, 2 insertions(+), 2 deletions(-)
|
||||
|
||||
diff --git a/Makefile b/Makefile
|
||||
index 2767ac6..46bf57b 100644
|
||||
--- a/Makefile
|
||||
+++ b/Makefile
|
||||
@@ -91,8 +91,8 @@ FAILED_SLOTS_DIR = $(RUN_DIR)/failed-slots
|
||||
SYSTEMD_DIR=/lib/systemd/system
|
||||
LIB_DIR=/usr/libexec/mdadm
|
||||
|
||||
-COROSYNC:=$(shell [ -d /usr/include/corosync ] || echo -DNO_COROSYNC)
|
||||
-DLM:=$(shell [ -f /usr/include/libdlm.h ] || echo -DNO_DLM)
|
||||
+COROSYNC:=$(shell [ -f $(SYSROOT)/usr/include/corosync/cmap.h ] || echo -DNO_COROSYNC)
|
||||
+DLM:=$(shell [ -f $(SYSROOT)/usr/include/libdlm.h ] || echo -DNO_DLM)
|
||||
|
||||
DIRFLAGS = -DMAP_DIR=\"$(MAP_DIR)\" -DMAP_FILE=\"$(MAP_FILE)\"
|
||||
DIRFLAGS += -DMDMON_DIR=\"$(MDMON_DIR)\"
|
||||
@@ -0,0 +1,30 @@
|
||||
From 97e776724ab9763c5bca9816370bb1635b7a8232 Mon Sep 17 00:00:00 2001
|
||||
From: Chen Qi <Qi.Chen@windriver.com>
|
||||
Date: Tue, 25 Jan 2022 16:25:01 +0800
|
||||
Subject: [PATCH] Makefile: install mdcheck
|
||||
|
||||
The mdcheck_xxx.service files use mdcheck, but it's not installed.
|
||||
We need to install this script.
|
||||
|
||||
Upstream-Status: Submitted [Sent patch to maintainer]
|
||||
|
||||
Signed-off-by: Chen Qi <Qi.Chen@windriver.com>
|
||||
---
|
||||
Makefile | 1 +
|
||||
1 file changed, 1 insertion(+)
|
||||
|
||||
diff --git a/Makefile b/Makefile
|
||||
index 2a51d813..db40c7fd 100644
|
||||
--- a/Makefile
|
||||
+++ b/Makefile
|
||||
@@ -303,6 +303,7 @@ install-systemd: systemd/mdmon@.service
|
||||
install-bin: mdadm mdmon
|
||||
$(INSTALL) -D $(STRIP) -m 755 mdadm $(DESTDIR)$(BINDIR)/mdadm
|
||||
$(INSTALL) -D $(STRIP) -m 755 mdmon $(DESTDIR)$(BINDIR)/mdmon
|
||||
+ $(INSTALL) -D -m 755 misc/mdcheck $(DESTDIR)/usr/share/mdadm/mdcheck
|
||||
|
||||
uninstall:
|
||||
rm -f $(DESTDIR)$(MAN8DIR)/mdadm.8 $(DESTDIR)$(MAN8DIR)/mdmon.8 $(DESTDIR)$(MAN4DIR)/md.4 $(DESTDIR)$(MAN5DIR)/mdadm.conf.5 $(DESTDIR)$(BINDIR)/mdadm
|
||||
--
|
||||
2.17.1
|
||||
|
||||
@@ -0,0 +1,53 @@
|
||||
From 02a41c3fd560fb5250186dd6b3cff6b21daa2e2b Mon Sep 17 00:00:00 2001
|
||||
From: Mingli Yu <Mingli.Yu@windriver.com>
|
||||
Date: Mon, 15 Jul 2019 14:12:24 +0800
|
||||
Subject: [PATCH] Revert "tests: wait for complete rebuild in integrity checks"
|
||||
|
||||
This reverts commit e2a8e9dcf67a28bc722fa5ab2c49b0bc452d4d74
|
||||
as the logic "check state 'U*'" will make the test enters
|
||||
infinite loop especially in qemu env, so revert it to
|
||||
use the previous logic "check wait" which also used
|
||||
commonly by other tests such as tests/02r5grow, tests/07revert-grow
|
||||
and etc.
|
||||
|
||||
Upstream-Status: Submitted [https://marc.info/?l=linux-raid&m=156317157314030&w=2]
|
||||
|
||||
Signed-off-by: Mingli Yu <Mingli.Yu@windriver.com>
|
||||
---
|
||||
tests/01r5integ | 2 +-
|
||||
tests/01raid6integ | 4 ++--
|
||||
2 files changed, 3 insertions(+), 3 deletions(-)
|
||||
|
||||
diff --git a/tests/01r5integ b/tests/01r5integ
|
||||
index 48676a2..ffb30ce 100644
|
||||
--- a/tests/01r5integ
|
||||
+++ b/tests/01r5integ
|
||||
@@ -27,7 +27,7 @@ do
|
||||
exit 1
|
||||
fi
|
||||
mdadm $md0 -a $i
|
||||
- while ! (check state 'U*'); do check wait; sleep 0.2; done
|
||||
+ check wait
|
||||
done
|
||||
mdadm -S $md0
|
||||
done
|
||||
diff --git a/tests/01raid6integ b/tests/01raid6integ
|
||||
index 12f4d81..c6fcdae 100644
|
||||
--- a/tests/01raid6integ
|
||||
+++ b/tests/01raid6integ
|
||||
@@ -47,10 +47,10 @@ do
|
||||
exit 1
|
||||
fi
|
||||
mdadm $md0 -a $first
|
||||
- while ! (check state 'U*_U*'); do check wait; sleep 0.2; done
|
||||
+ check wait
|
||||
done
|
||||
mdadm $md0 -a $second
|
||||
- while ! (check state 'U*'); do check wait; sleep 0.2; done
|
||||
+ check wait
|
||||
totest="$totest $second"
|
||||
done
|
||||
mdadm -S $md0
|
||||
--
|
||||
2.7.4
|
||||
|
||||
@@ -0,0 +1,28 @@
|
||||
From 37c35f94d9d95dbd2b5f8a919f5478be51453590 Mon Sep 17 00:00:00 2001
|
||||
From: Khem Raj <raj.khem@gmail.com>
|
||||
Date: Fri, 13 Oct 2017 10:27:34 -0700
|
||||
Subject: [PATCH] Use CC to check for implicit-fallthrough warning support
|
||||
|
||||
This warning it new in gcc7 and in cross compile case
|
||||
its possible that build host gcc is version 7+ but the
|
||||
cross compile used for compiling mdadm is < version 7
|
||||
|
||||
Signed-off-by: Khem Raj <raj.khem@gmail.com>
|
||||
Upstream-Status: Pending
|
||||
---
|
||||
Makefile | 2 +-
|
||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||
|
||||
diff --git a/Makefile b/Makefile
|
||||
index 46bf57b..a075912 100644
|
||||
--- a/Makefile
|
||||
+++ b/Makefile
|
||||
@@ -53,7 +53,7 @@ ifdef WARN_UNUSED
|
||||
CWFLAGS += -Wp,-D_FORTIFY_SOURCE=2 -O3
|
||||
endif
|
||||
|
||||
-FALLTHROUGH := $(shell gcc -v --help 2>&1 | grep "implicit-fallthrough" | wc -l)
|
||||
+FALLTHROUGH := $(shell ${CC} -v --help 2>&1 | grep "implicit-fallthrough" | wc -l)
|
||||
ifneq "$(FALLTHROUGH)" "0"
|
||||
CWFLAGS += -Wimplicit-fallthrough=0
|
||||
endif
|
||||
@@ -0,0 +1,39 @@
|
||||
From 3158d3788c2e0fb75ace2c89840bd8a977fb4cb0 Mon Sep 17 00:00:00 2001
|
||||
From: Hongxu Jia <hongxu.jia@windriver.com>
|
||||
Date: Fri, 14 Dec 2018 15:12:31 +0800
|
||||
Subject: [PATCH] fix gcc-8 format-truncation warning
|
||||
|
||||
While compiling with `-Werror=format-truncation=', it failed
|
||||
[snip]
|
||||
|super0.c:236:32: error: 'snprintf' output may be truncated
|
||||
before the last format character [-Werror=format-truncation=]
|
||||
| snprintf(nb, sizeof(nb), "%4d", d);
|
||||
| ^
|
||||
|super0.c:236:3: note: 'snprintf' output between 5 and 12 bytes
|
||||
into a destination of size 11
|
||||
| snprintf(nb, sizeof(nb), "%4d", d);
|
||||
[snip]
|
||||
|
||||
Upstream-Status: Submitted [https://github.com/neilbrown/mdadm/pull/34]
|
||||
|
||||
Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com>
|
||||
---
|
||||
super0.c | 2 +-
|
||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||
|
||||
diff --git a/super0.c b/super0.c
|
||||
index 756cab5..12c28da 100644
|
||||
--- a/super0.c
|
||||
+++ b/super0.c
|
||||
@@ -229,7 +229,7 @@ static void examine_super0(struct supertype *st, char *homehost)
|
||||
d++) {
|
||||
mdp_disk_t *dp;
|
||||
char *dv;
|
||||
- char nb[11];
|
||||
+ char nb[12];
|
||||
int wonly, failfast;
|
||||
if (d>=0) dp = &sb->disks[d];
|
||||
else dp = &sb->this_disk;
|
||||
--
|
||||
2.7.4
|
||||
|
||||
@@ -0,0 +1,45 @@
|
||||
From 41edf6f45895193f4a523cb0a08d639c9ff9ccc9 Mon Sep 17 00:00:00 2001
|
||||
From: Logan Gunthorpe <logang@deltatee.com>
|
||||
Date: Wed, 22 Jun 2022 14:25:12 -0600
|
||||
Subject: [PATCH] mdadm: Fix optional --write-behind parameter
|
||||
|
||||
The commit noted below changed the behaviour of --write-behind to
|
||||
require an argument. This broke the 06wrmostly test with the error:
|
||||
|
||||
mdadm: Invalid value for maximum outstanding write-behind writes: (null).
|
||||
Must be between 0 and 16383.
|
||||
|
||||
To fix this, check if optarg is NULL before parising it, as the origial
|
||||
code did.
|
||||
|
||||
Upstream-Status: Backport [https://git.kernel.org/pub/scm/utils/mdadm/mdadm.git/commit/?id=41edf6f45895193f4a523cb0a08d639c9ff9ccc9]
|
||||
|
||||
Fixes: 60815698c0ac ("Refactor parse_num and use it to parse optarg.")
|
||||
Cc: Mateusz Grzonka <mateusz.grzonka@intel.com>
|
||||
Signed-off-by: Logan Gunthorpe <logang@deltatee.com>
|
||||
Acked-by: Mariusz Tkaczyk <mariusz.tkaczyk@linux.intel.com>
|
||||
Signed-off-by: Jes Sorensen <jes@trained-monkey.org>
|
||||
Signed-off-by: Mingli Yu <mingli.yu@windriver.com>
|
||||
---
|
||||
mdadm.c | 5 +++--
|
||||
1 file changed, 3 insertions(+), 2 deletions(-)
|
||||
|
||||
diff --git a/mdadm.c b/mdadm.c
|
||||
index d0c5e6de..56722ed9 100644
|
||||
--- a/mdadm.c
|
||||
+++ b/mdadm.c
|
||||
@@ -1201,8 +1201,9 @@ int main(int argc, char *argv[])
|
||||
case O(BUILD, WriteBehind):
|
||||
case O(CREATE, WriteBehind):
|
||||
s.write_behind = DEFAULT_MAX_WRITE_BEHIND;
|
||||
- if (parse_num(&s.write_behind, optarg) != 0 ||
|
||||
- s.write_behind < 0 || s.write_behind > 16383) {
|
||||
+ if (optarg &&
|
||||
+ (parse_num(&s.write_behind, optarg) != 0 ||
|
||||
+ s.write_behind < 0 || s.write_behind > 16383)) {
|
||||
pr_err("Invalid value for maximum outstanding write-behind writes: %s.\n\tMust be between 0 and 16383.\n",
|
||||
optarg);
|
||||
exit(2);
|
||||
--
|
||||
2.25.1
|
||||
|
||||
@@ -0,0 +1,28 @@
|
||||
From 5fdc0173cb4fcf8656f0889ad364d2549795607f Mon Sep 17 00:00:00 2001
|
||||
From: Changqing Li <changqing.li@windriver.com>
|
||||
Date: Mon, 1 Jul 2019 11:34:49 +0800
|
||||
Subject: [PATCH] mdadm: add option -y for use syslog to recive event report
|
||||
|
||||
fix service startup failed when there is
|
||||
No mail address or alert command
|
||||
|
||||
Upstream-Status: Inappropriate [configuration]
|
||||
|
||||
Signed-off-by: Changqing Li <changqing.li@windriver.com>
|
||||
---
|
||||
systemd/mdmonitor.service | 2 +-
|
||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||
|
||||
diff --git a/systemd/mdmonitor.service b/systemd/mdmonitor.service
|
||||
index 46f7b88..3fc4687 100644
|
||||
--- a/systemd/mdmonitor.service
|
||||
+++ b/systemd/mdmonitor.service
|
||||
@@ -13,4 +13,4 @@ DefaultDependencies=no
|
||||
Environment= MDADM_MONITOR_ARGS=--scan
|
||||
EnvironmentFile=-/run/sysconfig/mdadm
|
||||
ExecStartPre=-/usr/lib/mdadm/mdadm_env.sh
|
||||
-ExecStart=BINDIR/mdadm --monitor $MDADM_MONITOR_ARGS
|
||||
+ExecStart=BINDIR/mdadm --monitor -y $MDADM_MONITOR_ARGS
|
||||
--
|
||||
2.7.4
|
||||
|
||||
@@ -0,0 +1,43 @@
|
||||
From 1b83afa7c3121f819e72ea74883f8b6d61d6548e Mon Sep 17 00:00:00 2001
|
||||
From: Changqing Li <changqing.li@windriver.com>
|
||||
Date: Fri, 6 Sep 2019 10:59:02 +0800
|
||||
Subject: [PATCH] mdadm: skip test 11spare-migration
|
||||
|
||||
11spare-migration is a test series to check mdadm Monitor migrates spares
|
||||
according to rules in /etc/mdadm.conf defined by POLICY lines.
|
||||
|
||||
[snip]
|
||||
for scan in no yes; do
|
||||
for platform in 1.2 imsm; do
|
||||
try
|
||||
done
|
||||
done
|
||||
[snip]
|
||||
|
||||
"try" includes near 20 sub testcase, so there are nearly 80 subcases need to run,
|
||||
so it will take long time than ptest-runner timeout limit, skip it as workaround.
|
||||
|
||||
Upstream-Status: Inappropriate [oe-specific]
|
||||
|
||||
Signed-off-by: Changqing Li <changqing.li@windriver.com>
|
||||
---
|
||||
test | 3 +++
|
||||
1 file changed, 3 insertions(+)
|
||||
|
||||
diff --git a/test b/test
|
||||
index 711a3c7..880dd1d 100755
|
||||
--- a/test
|
||||
+++ b/test
|
||||
@@ -272,6 +272,9 @@ main() {
|
||||
else
|
||||
for script in $testdir/$prefix $testdir/$prefix*[^~]
|
||||
do
|
||||
+ if [ $script == "$testdir/11spare-migration" ];then
|
||||
+ continue
|
||||
+ fi
|
||||
do_test $script
|
||||
done
|
||||
fi
|
||||
--
|
||||
2.7.4
|
||||
|
||||
@@ -0,0 +1,39 @@
|
||||
From b431cb4e1ed060122fa300dc0008f74080d38f73 Mon Sep 17 00:00:00 2001
|
||||
From: Khem Raj <raj.khem@gmail.com>
|
||||
Date: Mon, 9 May 2016 22:03:57 +0000
|
||||
Subject: [PATCH] mdadm.h: Undefine dprintf before redefining
|
||||
|
||||
dprintf is also defined in libc see
|
||||
usr/include/bits/stdio2.h, this comes into
|
||||
play especially when fortify sources is enabled
|
||||
and compilers like clang reports the override
|
||||
|
||||
In file included from policy.c:25:
|
||||
./mdadm.h:1562:9: error: 'dprintf' macro redefined [-Werror,-Wmacro-redefined]
|
||||
^
|
||||
/mnt/oe/openembedded-core/build/tmp-glibc/sysroots/qemux86/usr/include/bits/stdio2.h:145:12: note: previous definition is here
|
||||
|
||||
Signed-off-by: Khem Raj <raj.khem@gmail.com>
|
||||
Upstream-Status: Pending
|
||||
---
|
||||
mdadm.h | 2 ++
|
||||
1 file changed, 2 insertions(+)
|
||||
|
||||
diff --git a/mdadm.h b/mdadm.h
|
||||
index 387e681..bb943bf 100644
|
||||
--- a/mdadm.h
|
||||
+++ b/mdadm.h
|
||||
@@ -1649,11 +1649,13 @@ static inline char *to_subarray(struct mdstat_ent *ent, char *container)
|
||||
}
|
||||
|
||||
#ifdef DEBUG
|
||||
+#undef dprintf
|
||||
#define dprintf(fmt, arg...) \
|
||||
fprintf(stderr, "%s: %s: "fmt, Name, __func__, ##arg)
|
||||
#define dprintf_cont(fmt, arg...) \
|
||||
fprintf(stderr, fmt, ##arg)
|
||||
#else
|
||||
+#undef dprintf
|
||||
#define dprintf(fmt, arg...) \
|
||||
({ if (0) fprintf(stderr, "%s: %s: " fmt, Name, __func__, ##arg); 0; })
|
||||
#define dprintf_cont(fmt, arg...) \
|
||||
@@ -0,0 +1,147 @@
|
||||
From 6b861a267a6ef6f60f6cc21e4c8e6d7cdd2451dc Mon Sep 17 00:00:00 2001
|
||||
From: Khem Raj <raj.khem@gmail.com>
|
||||
Date: Thu, 10 Nov 2022 12:31:22 -0800
|
||||
Subject: [PATCH] restripe.c: Use _FILE_OFFSET_BITS to enable largefile support
|
||||
|
||||
Instead of using the lseek64 and friends, its better to enable it via
|
||||
the feature macro _FILE_OFFSET_BITS = 64 and let the C library deal with
|
||||
the width of types
|
||||
|
||||
Upstream-Status: Submitted [https://lore.kernel.org/linux-raid/20221110225546.337164-1-raj.khem@gmail.com/]
|
||||
Signed-off-by: Khem Raj <raj.khem@gmail.com>
|
||||
---
|
||||
restripe.c | 13 ++++++++-----
|
||||
1 file changed, 8 insertions(+), 5 deletions(-)
|
||||
|
||||
--- a/restripe.c
|
||||
+++ b/restripe.c
|
||||
@@ -22,6 +22,9 @@
|
||||
* Email: <neilb@suse.de>
|
||||
*/
|
||||
|
||||
+/* Enable largefile support */
|
||||
+#define _FILE_OFFSET_BITS 64
|
||||
+
|
||||
#include "mdadm.h"
|
||||
#include <stdint.h>
|
||||
|
||||
@@ -581,7 +584,7 @@ int save_stripes(int *source, unsigned l
|
||||
raid_disks, level, layout);
|
||||
if (dnum < 0) abort();
|
||||
if (source[dnum] < 0 ||
|
||||
- lseek64(source[dnum],
|
||||
+ lseek(source[dnum],
|
||||
offsets[dnum] + offset, 0) < 0 ||
|
||||
read(source[dnum], buf+disk * chunk_size,
|
||||
chunk_size) != chunk_size) {
|
||||
@@ -754,8 +757,8 @@ int restore_stripes(int *dest, unsigned
|
||||
raid_disks, level, layout);
|
||||
if (src_buf == NULL) {
|
||||
/* read from file */
|
||||
- if (lseek64(source, read_offset, 0) !=
|
||||
- (off64_t)read_offset) {
|
||||
+ if (lseek(source, read_offset, 0) !=
|
||||
+ (off_t)read_offset) {
|
||||
rv = -1;
|
||||
goto abort;
|
||||
}
|
||||
@@ -816,7 +819,7 @@ int restore_stripes(int *dest, unsigned
|
||||
}
|
||||
for (i=0; i < raid_disks ; i++)
|
||||
if (dest[i] >= 0) {
|
||||
- if (lseek64(dest[i],
|
||||
+ if (lseek(dest[i],
|
||||
offsets[i]+offset, 0) < 0) {
|
||||
rv = -1;
|
||||
goto abort;
|
||||
@@ -866,7 +869,7 @@ int test_stripes(int *source, unsigned l
|
||||
int disk;
|
||||
|
||||
for (i = 0 ; i < raid_disks ; i++) {
|
||||
- if ((lseek64(source[i], offsets[i]+start, 0) < 0) ||
|
||||
+ if ((lseek(source[i], offsets[i]+start, 0) < 0) ||
|
||||
(read(source[i], stripes[i], chunk_size) !=
|
||||
chunk_size)) {
|
||||
free(q);
|
||||
--- a/raid6check.c
|
||||
+++ b/raid6check.c
|
||||
@@ -22,6 +22,9 @@
|
||||
* Based on "restripe.c" from "mdadm" codebase
|
||||
*/
|
||||
|
||||
+/* Enable largefile support */
|
||||
+#define _FILE_OFFSET_BITS 64
|
||||
+
|
||||
#include "mdadm.h"
|
||||
#include <stdint.h>
|
||||
#include <signal.h>
|
||||
@@ -279,9 +282,9 @@ int manual_repair(int chunk_size, int sy
|
||||
}
|
||||
|
||||
int write_res1, write_res2;
|
||||
- off64_t seek_res;
|
||||
+ off_t seek_res;
|
||||
|
||||
- seek_res = lseek64(source[fd1],
|
||||
+ seek_res = lseek(source[fd1],
|
||||
offsets[fd1] + start * chunk_size, SEEK_SET);
|
||||
if (seek_res < 0) {
|
||||
fprintf(stderr, "lseek failed for failed_disk1\n");
|
||||
@@ -289,7 +292,7 @@ int manual_repair(int chunk_size, int sy
|
||||
}
|
||||
write_res1 = write(source[fd1], blocks[failed_slot1], chunk_size);
|
||||
|
||||
- seek_res = lseek64(source[fd2],
|
||||
+ seek_res = lseek(source[fd2],
|
||||
offsets[fd2] + start * chunk_size, SEEK_SET);
|
||||
if (seek_res < 0) {
|
||||
fprintf(stderr, "lseek failed for failed_disk2\n");
|
||||
@@ -374,7 +377,7 @@ int check_stripes(struct mdinfo *info, i
|
||||
goto exitCheck;
|
||||
}
|
||||
for (i = 0 ; i < raid_disks ; i++) {
|
||||
- off64_t seek_res = lseek64(source[i], offsets[i] + start * chunk_size,
|
||||
+ off_t seek_res = lseek(source[i], offsets[i] + start * chunk_size,
|
||||
SEEK_SET);
|
||||
if (seek_res < 0) {
|
||||
fprintf(stderr, "lseek to source %d failed\n", i);
|
||||
--- a/swap_super.c
|
||||
+++ b/swap_super.c
|
||||
@@ -1,3 +1,6 @@
|
||||
+/* Enable largefile support */
|
||||
+#define _FILE_OFFSET_BITS 64
|
||||
+
|
||||
#include <unistd.h>
|
||||
#include <stdlib.h>
|
||||
#include <fcntl.h>
|
||||
@@ -16,8 +19,6 @@
|
||||
|
||||
#define MD_NEW_SIZE_SECTORS(x) ((x & ~(MD_RESERVED_SECTORS - 1)) - MD_RESERVED_SECTORS)
|
||||
|
||||
-extern long long lseek64(int, long long, int);
|
||||
-
|
||||
int main(int argc, char *argv[])
|
||||
{
|
||||
int fd, i;
|
||||
@@ -38,8 +39,8 @@ int main(int argc, char *argv[])
|
||||
exit(1);
|
||||
}
|
||||
offset = MD_NEW_SIZE_SECTORS(size) * 512LL;
|
||||
- if (lseek64(fd, offset, 0) < 0LL) {
|
||||
- perror("lseek64");
|
||||
+ if (lseek(fd, offset, 0) < 0LL) {
|
||||
+ perror("lseek");
|
||||
exit(1);
|
||||
}
|
||||
if (read(fd, super, 4096) != 4096) {
|
||||
@@ -68,8 +69,8 @@ int main(int argc, char *argv[])
|
||||
super[32*4+10*4 +i] = t;
|
||||
}
|
||||
|
||||
- if (lseek64(fd, offset, 0) < 0LL) {
|
||||
- perror("lseek64");
|
||||
+ if (lseek(fd, offset, 0) < 0LL) {
|
||||
+ perror("lseek");
|
||||
exit(1);
|
||||
}
|
||||
if (write(fd, super, 4096) != 4096) {
|
||||
@@ -0,0 +1,41 @@
|
||||
From 7539254342bc591717b0051734cc6c09c1b88640 Mon Sep 17 00:00:00 2001
|
||||
From: Sudhakar Panneerselvam <sudhakar.panneerselvam@oracle.com>
|
||||
Date: Wed, 22 Jun 2022 14:25:13 -0600
|
||||
Subject: [PATCH] tests/00raid0: add a test that validates raid0 with layout
|
||||
fails for 0.9
|
||||
|
||||
329dfc28debb disallows the creation of raid0 with layouts for 0.9
|
||||
metadata. This test confirms the new behavior.
|
||||
|
||||
Upstream-Status: Backport [https://git.kernel.org/pub/scm/utils/mdadm/mdadm.git/commit/?id=7539254342bc591717b0051734cc6c09c1b88640]
|
||||
|
||||
Signed-off-by: Sudhakar Panneerselvam <sudhakar.panneerselvam@oracle.com>
|
||||
Signed-off-by: Himanshu Madhani <himanshu.madhani@oracle.com>
|
||||
Signed-off-by: Logan Gunthorpe <logang@deltatee.com>
|
||||
Signed-off-by: Jes Sorensen <jes@trained-monkey.org>
|
||||
Signed-off-by: Mingli Yu <mingli.yu@windriver.com>
|
||||
---
|
||||
tests/00raid0 | 6 ++----
|
||||
1 file changed, 2 insertions(+), 4 deletions(-)
|
||||
|
||||
diff --git a/tests/00raid0 b/tests/00raid0
|
||||
index 8bc18985..e6b21cc4 100644
|
||||
--- a/tests/00raid0
|
||||
+++ b/tests/00raid0
|
||||
@@ -6,11 +6,9 @@ check raid0
|
||||
testdev $md0 3 $mdsize2_l 512
|
||||
mdadm -S $md0
|
||||
|
||||
-# now with version-0.90 superblock
|
||||
+# verify raid0 with layouts fail for 0.90
|
||||
mdadm -CR $md0 -e0.90 -l0 -n4 $dev0 $dev1 $dev2 $dev3
|
||||
-check raid0
|
||||
-testdev $md0 4 $mdsize0 512
|
||||
-mdadm -S $md0
|
||||
+check opposite_result
|
||||
|
||||
# now with no superblock
|
||||
mdadm -B $md0 -l0 -n5 $dev0 $dev1 $dev2 $dev3 $dev4
|
||||
--
|
||||
2.25.1
|
||||
|
||||
@@ -0,0 +1,39 @@
|
||||
From 39b381252c32275079344d30de18b76fda4bba26 Mon Sep 17 00:00:00 2001
|
||||
From: Logan Gunthorpe <logang@deltatee.com>
|
||||
Date: Wed, 27 Jul 2022 15:52:45 -0600
|
||||
Subject: [PATCH] tests/00readonly: Run udevadm settle before setting ro
|
||||
|
||||
In some recent kernel versions, 00readonly fails with:
|
||||
|
||||
mdadm: failed to set readonly for /dev/md0: Device or resource busy
|
||||
ERROR: array is not read-only!
|
||||
|
||||
This was traced down to a race condition with udev holding a reference
|
||||
to the block device at the same time as trying to set it read only.
|
||||
|
||||
To fix this, call udevadm settle before setting the array read only.
|
||||
|
||||
Upstream-Status: Backport [https://git.kernel.org/pub/scm/utils/mdadm/mdadm.git/commit/?id=39b381252c32275079344d30de18b76fda4bba26]
|
||||
|
||||
Signed-off-by: Logan Gunthorpe <logang@deltatee.com>
|
||||
Signed-off-by: Jes Sorensen <jsorensen@fb.com>
|
||||
Signed-off-by: Mingli Yu <mingli.yu@windriver.com>
|
||||
---
|
||||
tests/00readonly | 1 +
|
||||
1 file changed, 1 insertion(+)
|
||||
|
||||
diff --git a/tests/00readonly b/tests/00readonly
|
||||
index 39202487..afe243b3 100644
|
||||
--- a/tests/00readonly
|
||||
+++ b/tests/00readonly
|
||||
@@ -12,6 +12,7 @@ do
|
||||
$dev1 $dev2 $dev3 $dev4 --assume-clean
|
||||
check nosync
|
||||
check $level
|
||||
+ udevadm settle
|
||||
mdadm -ro $md0
|
||||
check readonly
|
||||
state=$(cat /sys/block/md0/md/array_state)
|
||||
--
|
||||
2.25.1
|
||||
|
||||
@@ -0,0 +1,33 @@
|
||||
From a2c832465fc75202e244327b2081231dfa974617 Mon Sep 17 00:00:00 2001
|
||||
From: Sudhakar Panneerselvam <sudhakar.panneerselvam@oracle.com>
|
||||
Date: Wed, 22 Jun 2022 14:25:16 -0600
|
||||
Subject: [PATCH] tests/02lineargrow: clear the superblock at every iteration
|
||||
|
||||
This fixes 02lineargrow test as prior metadata causes --add operation
|
||||
to misbehave.
|
||||
|
||||
Upstream-Status: Backport [https://git.kernel.org/pub/scm/utils/mdadm/mdadm.git/commit/?id=a2c832465fc75202e244327b2081231dfa974617]
|
||||
|
||||
Signed-off-by: Sudhakar Panneerselvam <sudhakar.panneerselvam@oracle.com>
|
||||
Signed-off-by: Himanshu Madhani <himanshu.madhani@oracle.com>
|
||||
Signed-off-by: Logan Gunthorpe <logang@deltatee.com>
|
||||
Signed-off-by: Jes Sorensen <jes@trained-monkey.org>
|
||||
Signed-off-by: Mingli Yu <mingli.yu@windriver.com>
|
||||
---
|
||||
tests/02lineargrow | 2 ++
|
||||
1 file changed, 2 insertions(+)
|
||||
|
||||
diff --git a/tests/02lineargrow b/tests/02lineargrow
|
||||
index e05c219d..595bf9f2 100644
|
||||
--- a/tests/02lineargrow
|
||||
+++ b/tests/02lineargrow
|
||||
@@ -20,4 +20,6 @@ do
|
||||
testdev $md0 3 $sz 1
|
||||
|
||||
mdadm -S $md0
|
||||
+ mdadm --zero /dev/loop2
|
||||
+ mdadm --zero /dev/loop3
|
||||
done
|
||||
--
|
||||
2.25.1
|
||||
|
||||
@@ -0,0 +1,41 @@
|
||||
From de045db607b1ac4b70fc2a8878463e029c2ab1dc Mon Sep 17 00:00:00 2001
|
||||
From: Sudhakar Panneerselvam <sudhakar.panneerselvam@oracle.com>
|
||||
Date: Wed, 22 Jun 2022 14:25:15 -0600
|
||||
Subject: [PATCH] tests/04update-metadata: avoid passing chunk size to raid1
|
||||
|
||||
'04update-metadata' test fails with error, "specifying chunk size is
|
||||
forbidden for this level" added by commit, 5b30a34aa4b5e. Hence,
|
||||
correcting the test to ignore passing chunk size to raid1.
|
||||
|
||||
Upstream-Status: Backport [https://git.kernel.org/pub/scm/utils/mdadm/mdadm.git/commit/?id=de045db607b1ac4b70fc2a8878463e029c2ab1dc]
|
||||
|
||||
Signed-off-by: Sudhakar Panneerselvam <sudhakar.panneerselvam@oracle.com>
|
||||
Signed-off-by: Himanshu Madhani <himanshu.madhani@oracle.com>
|
||||
[logang@deltatee.com: fix if/then style and dropped unrelated hunk]
|
||||
Signed-off-by: Logan Gunthorpe <logang@deltatee.com>
|
||||
Signed-off-by: Jes Sorensen <jes@trained-monkey.org>
|
||||
Signed-off-by: Mingli Yu <mingli.yu@windriver.com>
|
||||
---
|
||||
tests/04update-metadata | 6 +++++-
|
||||
1 file changed, 5 insertions(+), 1 deletion(-)
|
||||
|
||||
diff --git a/tests/04update-metadata b/tests/04update-metadata
|
||||
index 08c14af7..2b72a303 100644
|
||||
--- a/tests/04update-metadata
|
||||
+++ b/tests/04update-metadata
|
||||
@@ -11,7 +11,11 @@ dlist="$dev0 $dev1 $dev2 $dev3"
|
||||
for ls in linear/4 raid1/1 raid5/3 raid6/2
|
||||
do
|
||||
s=${ls#*/} l=${ls%/*}
|
||||
- mdadm -CR --assume-clean -e 0.90 $md0 --level $l -n 4 -c 64 $dlist
|
||||
+ if [[ $l == 'raid1' ]]; then
|
||||
+ mdadm -CR --assume-clean -e 0.90 $md0 --level $l -n 4 $dlist
|
||||
+ else
|
||||
+ mdadm -CR --assume-clean -e 0.90 $md0 --level $l -n 4 -c 64 $dlist
|
||||
+ fi
|
||||
testdev $md0 $s 19904 64
|
||||
mdadm -S $md0
|
||||
mdadm -A $md0 --update=metadata $dlist
|
||||
--
|
||||
2.25.1
|
||||
|
||||
@@ -0,0 +1,39 @@
|
||||
From ee594b1a12833c06102de888248a361bc49cea09 Mon Sep 17 00:00:00 2001
|
||||
From: Ovidiu Panait <ovidiu.panait@windriver.com>
|
||||
Date: Fri, 18 Aug 2023 12:20:40 +0300
|
||||
Subject: [PATCH] tests: add .broken files for 04update-uuid and
|
||||
07revert-inplace
|
||||
|
||||
04update-uuid and 07revert-inplace tests are unreliable and fail intermittently
|
||||
on the autobuilder. Unfortunately, the failures cannot be reproduced locally
|
||||
and the logs cannot be retrieved from the AB.
|
||||
|
||||
Mark the testcases as BROKEN to skip them when running ptest.
|
||||
|
||||
Upstream-Status: Inappropriate
|
||||
|
||||
Signed-off-by: Ovidiu Panait <ovidiu.panait@windriver.com>
|
||||
---
|
||||
tests/04update-uuid.broken | 1 +
|
||||
tests/07revert-inplace.broken | 1 +
|
||||
2 files changed, 2 insertions(+)
|
||||
create mode 100644 tests/04update-uuid.broken
|
||||
create mode 100644 tests/07revert-inplace.broken
|
||||
|
||||
diff --git a/tests/04update-uuid.broken b/tests/04update-uuid.broken
|
||||
new file mode 100644
|
||||
index 0000000..197b35b
|
||||
--- /dev/null
|
||||
+++ b/tests/04update-uuid.broken
|
||||
@@ -0,0 +1 @@
|
||||
+fails infrequently
|
||||
diff --git a/tests/07revert-inplace.broken b/tests/07revert-inplace.broken
|
||||
new file mode 100644
|
||||
index 0000000..197b35b
|
||||
--- /dev/null
|
||||
+++ b/tests/07revert-inplace.broken
|
||||
@@ -0,0 +1 @@
|
||||
+fails infrequently
|
||||
--
|
||||
2.39.1
|
||||
|
||||
@@ -0,0 +1,102 @@
|
||||
From 14c2161edb77d7294199e8aa7daa9f9d1d0ad5d7 Mon Sep 17 00:00:00 2001
|
||||
From: Sudhakar Panneerselvam <sudhakar.panneerselvam@oracle.com>
|
||||
Date: Wed, 22 Jun 2022 14:25:14 -0600
|
||||
Subject: [PATCH] tests: fix raid0 tests for 0.90 metadata
|
||||
|
||||
Some of the test cases fail because raid0 creation fails with the error,
|
||||
"0.90 metadata does not support layouts for RAID0" added by commit,
|
||||
329dfc28debb. Fix some of the test cases by switching from raid0 to
|
||||
linear level for 0.9 metadata where possible.
|
||||
|
||||
Upstream-Status: Backport [https://git.kernel.org/pub/scm/utils/mdadm/mdadm.git/commit/?id=14c2161edb77d7294199e8aa7daa9f9d1d0ad5d7]
|
||||
|
||||
Signed-off-by: Sudhakar Panneerselvam <sudhakar.panneerselvam@oracle.com>
|
||||
Signed-off-by: Himanshu Madhani <himanshu.madhani@oracle.com>
|
||||
Signed-off-by: Logan Gunthorpe <logang@deltatee.com>
|
||||
Signed-off-by: Jes Sorensen <jes@trained-monkey.org>
|
||||
Signed-off-by: Mingli Yu <mingli.yu@windriver.com>
|
||||
---
|
||||
tests/00raid0 | 4 ++--
|
||||
tests/00readonly | 4 ++++
|
||||
tests/03r0assem | 6 +++---
|
||||
tests/04r0update | 4 ++--
|
||||
tests/04update-metadata | 2 +-
|
||||
5 files changed, 12 insertions(+), 8 deletions(-)
|
||||
|
||||
diff --git a/tests/00raid0 b/tests/00raid0
|
||||
index e6b21cc4..9b8896cb 100644
|
||||
--- a/tests/00raid0
|
||||
+++ b/tests/00raid0
|
||||
@@ -20,8 +20,8 @@ mdadm -S $md0
|
||||
# now same again with different chunk size
|
||||
for chunk in 4 32 256
|
||||
do
|
||||
- mdadm -CR $md0 -e0.90 -l raid0 --chunk $chunk -n3 $dev0 $dev1 $dev2
|
||||
- check raid0
|
||||
+ mdadm -CR $md0 -e0.90 -l linear --chunk $chunk -n3 $dev0 $dev1 $dev2
|
||||
+ check linear
|
||||
testdev $md0 3 $mdsize0 $chunk
|
||||
mdadm -S $md0
|
||||
|
||||
diff --git a/tests/00readonly b/tests/00readonly
|
||||
index 28b0fa13..39202487 100644
|
||||
--- a/tests/00readonly
|
||||
+++ b/tests/00readonly
|
||||
@@ -4,6 +4,10 @@ for metadata in 0.9 1.0 1.1 1.2
|
||||
do
|
||||
for level in linear raid0 raid1 raid4 raid5 raid6 raid10
|
||||
do
|
||||
+ if [[ $metadata == "0.9" && $level == "raid0" ]];
|
||||
+ then
|
||||
+ continue
|
||||
+ fi
|
||||
mdadm -CR $md0 -l $level -n 4 --metadata=$metadata \
|
||||
$dev1 $dev2 $dev3 $dev4 --assume-clean
|
||||
check nosync
|
||||
diff --git a/tests/03r0assem b/tests/03r0assem
|
||||
index 6744e322..44df0645 100644
|
||||
--- a/tests/03r0assem
|
||||
+++ b/tests/03r0assem
|
||||
@@ -68,9 +68,9 @@ mdadm -S $md2
|
||||
### Now for version 0...
|
||||
|
||||
mdadm --zero-superblock $dev0 $dev1 $dev2
|
||||
-mdadm -CR $md2 -l0 --metadata=0.90 -n3 $dev0 $dev1 $dev2
|
||||
-check raid0
|
||||
-tst="testdev $md2 3 $mdsize0 512"
|
||||
+mdadm -CR $md2 -llinear --metadata=0.90 -n3 $dev0 $dev1 $dev2
|
||||
+check linear
|
||||
+tst="testdev $md2 3 $mdsize0 1"
|
||||
$tst
|
||||
|
||||
uuid=`mdadm -Db $md2 | sed 's/.*UUID=//'`
|
||||
diff --git a/tests/04r0update b/tests/04r0update
|
||||
index 73ee3b9f..b95efb06 100644
|
||||
--- a/tests/04r0update
|
||||
+++ b/tests/04r0update
|
||||
@@ -1,7 +1,7 @@
|
||||
|
||||
# create a raid0, re-assemble with a different super-minor
|
||||
-mdadm -CR -e 0.90 $md0 -l0 -n3 $dev0 $dev1 $dev2
|
||||
-testdev $md0 3 $mdsize0 512
|
||||
+mdadm -CR -e 0.90 $md0 -llinear -n3 $dev0 $dev1 $dev2
|
||||
+testdev $md0 3 $mdsize0 1
|
||||
minor1=`mdadm -E $dev0 | sed -n -e 's/.*Preferred Minor : //p'`
|
||||
mdadm -S /dev/md0
|
||||
|
||||
diff --git a/tests/04update-metadata b/tests/04update-metadata
|
||||
index 232fc1ff..08c14af7 100644
|
||||
--- a/tests/04update-metadata
|
||||
+++ b/tests/04update-metadata
|
||||
@@ -8,7 +8,7 @@ set -xe
|
||||
|
||||
dlist="$dev0 $dev1 $dev2 $dev3"
|
||||
|
||||
-for ls in raid0/4 linear/4 raid1/1 raid5/3 raid6/2
|
||||
+for ls in linear/4 raid1/1 raid5/3 raid6/2
|
||||
do
|
||||
s=${ls#*/} l=${ls%/*}
|
||||
mdadm -CR --assume-clean -e 0.90 $md0 --level $l -n 4 -c 64 $dlist
|
||||
--
|
||||
2.25.1
|
||||
|
||||
@@ -0,0 +1,56 @@
|
||||
From 14f110f0286d38e29ef5e51d7f72e049c2f18323 Mon Sep 17 00:00:00 2001
|
||||
From: Logan Gunthorpe <logang@deltatee.com>
|
||||
Date: Wed, 22 Jun 2022 14:25:08 -0600
|
||||
Subject: [PATCH 2/4] DDF: Fix NULL pointer dereference in
|
||||
validate_geometry_ddf()
|
||||
|
||||
A relatively recent patch added a call to validate_geometry() in
|
||||
Manage_add() that has level=LEVEL_CONTAINER and chunk=NULL.
|
||||
|
||||
This causes some ddf tests to segfault which aborts the test suite.
|
||||
|
||||
To fix this, avoid dereferencing chunk when the level is
|
||||
LEVEL_CONTAINER or LEVEL_NONE.
|
||||
|
||||
Fixes: 1f5d54a06df0 ("Manage: Call validate_geometry when adding drive to external container")
|
||||
Signed-off-by: Logan Gunthorpe <logang@deltatee.com>
|
||||
Acked-by: Mariusz Tkaczyk <mariusz.tkaczyk@linux.intel.com>
|
||||
Signed-off-by: Jes Sorensen <jes@trained-monkey.org>
|
||||
|
||||
Upstream-Status: Backport
|
||||
|
||||
Reference to upstream patch:
|
||||
https://git.kernel.org/pub/scm/utils/mdadm/mdadm.git/commit/?id=2b93288a5650
|
||||
|
||||
Signed-off-by: Ovidiu Panait <ovidiu.panait@windriver.com>
|
||||
---
|
||||
super-ddf.c | 6 +++---
|
||||
1 file changed, 3 insertions(+), 3 deletions(-)
|
||||
|
||||
diff --git a/super-ddf.c b/super-ddf.c
|
||||
index 65cf727..3ef1293 100644
|
||||
--- a/super-ddf.c
|
||||
+++ b/super-ddf.c
|
||||
@@ -3369,9 +3369,6 @@ static int validate_geometry_ddf(struct supertype *st,
|
||||
* If given BVDs, we make an SVD, changing all the GUIDs in the process.
|
||||
*/
|
||||
|
||||
- if (*chunk == UnSet)
|
||||
- *chunk = DEFAULT_CHUNK;
|
||||
-
|
||||
if (level == LEVEL_NONE)
|
||||
level = LEVEL_CONTAINER;
|
||||
if (level == LEVEL_CONTAINER) {
|
||||
@@ -3381,6 +3378,9 @@ static int validate_geometry_ddf(struct supertype *st,
|
||||
freesize, verbose);
|
||||
}
|
||||
|
||||
+ if (*chunk == UnSet)
|
||||
+ *chunk = DEFAULT_CHUNK;
|
||||
+
|
||||
if (!dev) {
|
||||
mdu_array_info_t array = {
|
||||
.level = level,
|
||||
--
|
||||
2.39.1
|
||||
|
||||
@@ -0,0 +1,91 @@
|
||||
From bd064da1469a6a07331b076a0294a8c6c3c38526 Mon Sep 17 00:00:00 2001
|
||||
From: Logan Gunthorpe <logang@deltatee.com>
|
||||
Date: Wed, 22 Jun 2022 14:25:09 -0600
|
||||
Subject: [PATCH 3/4] mdadm/Grow: Fix use after close bug by closing after fork
|
||||
|
||||
The test 07reshape-grow fails most of the time. But it succeeds around
|
||||
1 in 5 times. When it does succeed, it causes the tests to die because
|
||||
mdadm has segfaulted.
|
||||
|
||||
The segfault was caused by mdadm attempting to repoen a file
|
||||
descriptor that was already closed. The backtrace of the segfault
|
||||
was:
|
||||
|
||||
#0 __strncmp_avx2 () at ../sysdeps/x86_64/multiarch/strcmp-avx2.S:101
|
||||
#1 0x000056146e31d44b in devnm2devid (devnm=0x0) at util.c:956
|
||||
#2 0x000056146e31dab4 in open_dev_flags (devnm=0x0, flags=0)
|
||||
at util.c:1072
|
||||
#3 0x000056146e31db22 in open_dev (devnm=0x0) at util.c:1079
|
||||
#4 0x000056146e3202e8 in reopen_mddev (mdfd=4) at util.c:2244
|
||||
#5 0x000056146e329f36 in start_array (mdfd=4,
|
||||
mddev=0x7ffc55342450 "/dev/md0", content=0x7ffc55342860,
|
||||
st=0x56146fc78660, ident=0x7ffc55342f70, best=0x56146fc6f5d0,
|
||||
bestcnt=10, chosen_drive=0, devices=0x56146fc706b0, okcnt=5,
|
||||
sparecnt=0, rebuilding_cnt=0, journalcnt=0, c=0x7ffc55342e90,
|
||||
clean=1, avail=0x56146fc78720 "\001\001\001\001\001",
|
||||
start_partial_ok=0, err_ok=0, was_forced=0)
|
||||
at Assemble.c:1206
|
||||
#6 0x000056146e32c36e in Assemble (st=0x56146fc78660,
|
||||
mddev=0x7ffc55342450 "/dev/md0", ident=0x7ffc55342f70,
|
||||
devlist=0x56146fc6e2d0, c=0x7ffc55342e90)
|
||||
at Assemble.c:1914
|
||||
#7 0x000056146e312ac9 in main (argc=11, argv=0x7ffc55343238)
|
||||
at mdadm.c:1510
|
||||
|
||||
The file descriptor was closed early in Grow_continue(). The noted commit
|
||||
moved the close() call to close the fd above the fork which caused the
|
||||
parent process to return with a closed fd.
|
||||
|
||||
This meant reshape_array() and Grow_continue() would return in the parent
|
||||
with the fd forked. The fd would eventually be passed to reopen_mddev()
|
||||
which returned an unhandled NULL from fd2devnm() which would then be
|
||||
dereferenced in devnm2devid.
|
||||
|
||||
Fix this by moving the close() call below the fork. This appears to
|
||||
fix the 07revert-grow test. While we're at it, switch to using
|
||||
close_fd() to invalidate the file descriptor.
|
||||
|
||||
Fixes: 77b72fa82813 ("mdadm/Grow: prevent md's fd from being occupied during delayed time")
|
||||
Cc: Alex Wu <alexwu@synology.com>
|
||||
Cc: BingJing Chang <bingjingc@synology.com>
|
||||
Cc: Danny Shih <dannyshih@synology.com>
|
||||
Cc: ChangSyun Peng <allenpeng@synology.com>
|
||||
Signed-off-by: Logan Gunthorpe <logang@deltatee.com>
|
||||
Acked-by: Mariusz Tkaczyk <mariusz.tkaczyk@linux.intel.com>
|
||||
Signed-off-by: Jes Sorensen <jes@trained-monkey.org>
|
||||
|
||||
Upstream-Status: Backport
|
||||
|
||||
Reference to upstream patch:
|
||||
https://git.kernel.org/pub/scm/utils/mdadm/mdadm.git/commit/?id=548e9b916f86
|
||||
|
||||
Signed-off-by: Ovidiu Panait <ovidiu.panait@windriver.com>
|
||||
---
|
||||
Grow.c | 4 +++-
|
||||
1 file changed, 3 insertions(+), 1 deletion(-)
|
||||
|
||||
diff --git a/Grow.c b/Grow.c
|
||||
index 9c6fc95..a8e4e83 100644
|
||||
--- a/Grow.c
|
||||
+++ b/Grow.c
|
||||
@@ -3501,7 +3501,6 @@ started:
|
||||
return 0;
|
||||
}
|
||||
|
||||
- close(fd);
|
||||
/* Now we just need to kick off the reshape and watch, while
|
||||
* handling backups of the data...
|
||||
* This is all done by a forked background process.
|
||||
@@ -3522,6 +3521,9 @@ started:
|
||||
break;
|
||||
}
|
||||
|
||||
+ /* Close unused file descriptor in the forked process */
|
||||
+ close_fd(&fd);
|
||||
+
|
||||
/* If another array on the same devices is busy, the
|
||||
* reshape will wait for them. This would mean that
|
||||
* the first section that we suspend will stay suspended
|
||||
--
|
||||
2.39.1
|
||||
|
||||
@@ -0,0 +1,42 @@
|
||||
From 2296a4a441b4b8546e2eb32403930f1bb8f3ee4a Mon Sep 17 00:00:00 2001
|
||||
From: Logan Gunthorpe <logang@deltatee.com>
|
||||
Date: Wed, 22 Jun 2022 14:25:10 -0600
|
||||
Subject: [PATCH 4/4] monitor: Avoid segfault when calling NULL get_bad_blocks
|
||||
|
||||
Not all struct superswitch implement a get_bad_blocks() function,
|
||||
yet mdmon seems to call it without checking for NULL and thus
|
||||
occasionally segfaults in the test 10ddf-geometry.
|
||||
|
||||
Fix this by checking for NULL before calling it.
|
||||
|
||||
Signed-off-by: Logan Gunthorpe <logang@deltatee.com>
|
||||
Acked-by: Mariusz Tkaczyk <mariusz.tkaczyk@linux.intel.com>
|
||||
Signed-off-by: Jes Sorensen <jes@trained-monkey.org>
|
||||
|
||||
Upstream-Status: Backport
|
||||
|
||||
Reference to upstream patch:
|
||||
https://git.kernel.org/pub/scm/utils/mdadm/mdadm.git/commit/?id=9ae62977b51d
|
||||
|
||||
Signed-off-by: Ovidiu Panait <ovidiu.panait@windriver.com>
|
||||
---
|
||||
monitor.c | 3 +++
|
||||
1 file changed, 3 insertions(+)
|
||||
|
||||
diff --git a/monitor.c b/monitor.c
|
||||
index afc3e50..8e43c0d 100644
|
||||
--- a/monitor.c
|
||||
+++ b/monitor.c
|
||||
@@ -312,6 +312,9 @@ static int check_for_cleared_bb(struct active_array *a, struct mdinfo *mdi)
|
||||
struct md_bb *bb;
|
||||
int i;
|
||||
|
||||
+ if (!ss->get_bad_blocks)
|
||||
+ return -1;
|
||||
+
|
||||
/*
|
||||
* Get a list of bad blocks for an array, then read list of
|
||||
* acknowledged bad blocks from kernel and compare it against metadata
|
||||
--
|
||||
2.39.1
|
||||
|
||||
@@ -0,0 +1,128 @@
|
||||
From feab1f72fcf032a4d21d0a69eb61b23a5ddb3352 Mon Sep 17 00:00:00 2001
|
||||
From: Logan Gunthorpe <logang@deltatee.com>
|
||||
Date: Wed, 22 Jun 2022 14:25:18 -0600
|
||||
Subject: [PATCH 5/6] mdadm/test: Mark and ignore broken test failures
|
||||
|
||||
Add functionality to continue if a test marked as broken fails.
|
||||
|
||||
To mark a test as broken, a file with the same name but with the suffix
|
||||
'.broken' should exist. The first line in the file will be printed with
|
||||
a KNOWN BROKEN message; the rest of the file can describe the how the
|
||||
test is broken.
|
||||
|
||||
Also adds --skip-broken and --skip-always-broken to skip all the tests
|
||||
that have a .broken file or to skip all tests whose .broken file's first
|
||||
line contains the keyword always.
|
||||
|
||||
Signed-off-by: Logan Gunthorpe <logang@deltatee.com>
|
||||
Signed-off-by: Jes Sorensen <jes@trained-monkey.org>
|
||||
|
||||
Upstream-Status: Backport
|
||||
|
||||
Reference to upstream patch:
|
||||
https://git.kernel.org/pub/scm/utils/mdadm/mdadm.git/commit/?id=28520bf114b3
|
||||
|
||||
[OP: adjusted context for mdadm-4.2]
|
||||
Signed-off-by: Ovidiu Panait <ovidiu.panait@windriver.com>
|
||||
---
|
||||
test | 37 +++++++++++++++++++++++++++++++++++--
|
||||
1 file changed, 35 insertions(+), 2 deletions(-)
|
||||
|
||||
diff --git a/test b/test
|
||||
index 8f189d9..ee8fba1 100755
|
||||
--- a/test
|
||||
+++ b/test
|
||||
@@ -10,6 +10,8 @@ devlist=
|
||||
|
||||
savelogs=0
|
||||
exitonerror=1
|
||||
+ctrl_c_error=0
|
||||
+skipbroken=0
|
||||
prefix='[0-9][0-9]'
|
||||
|
||||
# use loop devices by default if doesn't specify --dev
|
||||
@@ -35,6 +37,7 @@ die() {
|
||||
|
||||
ctrl_c() {
|
||||
exitonerror=1
|
||||
+ ctrl_c_error=1
|
||||
}
|
||||
|
||||
# mdadm always adds --quiet, and we want to see any unexpected messages
|
||||
@@ -79,8 +82,21 @@ mdadm() {
|
||||
do_test() {
|
||||
_script=$1
|
||||
_basename=`basename $_script`
|
||||
+ _broken=0
|
||||
+
|
||||
if [ -f "$_script" ]
|
||||
then
|
||||
+ if [ -f "${_script}.broken" ]; then
|
||||
+ _broken=1
|
||||
+ _broken_msg=$(head -n1 "${_script}.broken" | tr -d '\n')
|
||||
+ if [ "$skipbroken" == "all" ]; then
|
||||
+ return
|
||||
+ elif [ "$skipbroken" == "always" ] &&
|
||||
+ [[ "$_broken_msg" == *always* ]]; then
|
||||
+ return
|
||||
+ fi
|
||||
+ fi
|
||||
+
|
||||
rm -f $targetdir/stderr
|
||||
# this might have been reset: restore the default.
|
||||
echo 2000 > /proc/sys/dev/raid/speed_limit_max
|
||||
@@ -97,10 +113,15 @@ do_test() {
|
||||
else
|
||||
save_log fail
|
||||
_fail=1
|
||||
+ if [ "$_broken" == "1" ]; then
|
||||
+ echo " (KNOWN BROKEN TEST: $_broken_msg)"
|
||||
+ fi
|
||||
fi
|
||||
[ "$savelogs" == "1" ] &&
|
||||
mv -f $targetdir/log $logdir/$_basename.log
|
||||
- [ "$_fail" == "1" -a "$exitonerror" == "1" ] && exit 1
|
||||
+ [ "$ctrl_c_error" == "1" ] && exit 1
|
||||
+ [ "$_fail" == "1" -a "$exitonerror" == "1" \
|
||||
+ -a "$_broken" == "0" ] && exit 1
|
||||
fi
|
||||
}
|
||||
|
||||
@@ -117,6 +138,8 @@ do_help() {
|
||||
--logdir=directory Directory to save all logfiles in
|
||||
--save-logs Usually use with --logdir together
|
||||
--keep-going | --no-error Don't stop on error, ie. run all tests
|
||||
+ --skip-broken Skip tests that are known to be broken
|
||||
+ --skip-always-broken Skip tests that are known to always fail
|
||||
--dev=loop|lvm|ram|disk Use loop devices (default), LVM, RAM or disk
|
||||
--disks= Provide a bunch of physical devices for test
|
||||
--volgroup=name LVM volume group for LVM test
|
||||
@@ -211,6 +234,12 @@ parse_args() {
|
||||
--keep-going | --no-error )
|
||||
exitonerror=0
|
||||
;;
|
||||
+ --skip-broken )
|
||||
+ skipbroken=all
|
||||
+ ;;
|
||||
+ --skip-always-broken )
|
||||
+ skipbroken=always
|
||||
+ ;;
|
||||
--disable-multipath )
|
||||
unset MULTIPATH
|
||||
;;
|
||||
@@ -275,7 +304,11 @@ main() {
|
||||
if [ $script == "$testdir/11spare-migration" ];then
|
||||
continue
|
||||
fi
|
||||
- do_test $script
|
||||
+ case $script in
|
||||
+ *.broken) ;;
|
||||
+ *)
|
||||
+ do_test $script
|
||||
+ esac
|
||||
done
|
||||
fi
|
||||
|
||||
--
|
||||
2.39.1
|
||||
|
||||
@@ -0,0 +1,454 @@
|
||||
From fd1c26ba129b069d9f73afaefdbe53683de3814a Mon Sep 17 00:00:00 2001
|
||||
From: Logan Gunthorpe <logang@deltatee.com>
|
||||
Date: Wed, 22 Jun 2022 14:25:19 -0600
|
||||
Subject: [PATCH 6/6] tests: Add broken files for all broken tests
|
||||
|
||||
Each broken file contains the rough frequency of brokeness as well
|
||||
as a brief explanation of what happens when it breaks. Estimates
|
||||
of failure rates are not statistically significant and can vary
|
||||
run to run.
|
||||
|
||||
This is really just a view from my window. Tests were done on a
|
||||
small VM with the default loop devices, not real hardware. We've
|
||||
seen different kernel configurations can cause bugs to appear as well
|
||||
(ie. different block schedulers). It may also be that different race
|
||||
conditions will be seen on machines with different performance
|
||||
characteristics.
|
||||
|
||||
These annotations were done with the kernel currently in md/md-next:
|
||||
|
||||
facef3b96c5b ("md: Notify sysfs sync_completed in md_reap_sync_thread()")
|
||||
|
||||
Signed-off-by: Logan Gunthorpe <logang@deltatee.com>
|
||||
Signed-off-by: Jes Sorensen <jes@trained-monkey.org>
|
||||
|
||||
Upstream-Status: Backport
|
||||
|
||||
Reference to upstream patch:
|
||||
https://git.kernel.org/pub/scm/utils/mdadm/mdadm.git/commit/?id=daa86d663476
|
||||
|
||||
Signed-off-by: Ovidiu Panait <ovidiu.panait@windriver.com>
|
||||
---
|
||||
tests/01r5integ.broken | 7 ++++
|
||||
tests/01raid6integ.broken | 7 ++++
|
||||
tests/04r5swap.broken | 7 ++++
|
||||
tests/07autoassemble.broken | 8 ++++
|
||||
tests/07autodetect.broken | 5 +++
|
||||
tests/07changelevelintr.broken | 9 +++++
|
||||
tests/07changelevels.broken | 9 +++++
|
||||
tests/07reshape5intr.broken | 45 ++++++++++++++++++++++
|
||||
tests/07revert-grow.broken | 31 +++++++++++++++
|
||||
tests/07revert-shrink.broken | 9 +++++
|
||||
tests/07testreshape5.broken | 12 ++++++
|
||||
tests/09imsm-assemble.broken | 6 +++
|
||||
tests/09imsm-create-fail-rebuild.broken | 5 +++
|
||||
tests/09imsm-overlap.broken | 7 ++++
|
||||
tests/10ddf-assemble-missing.broken | 6 +++
|
||||
tests/10ddf-fail-create-race.broken | 7 ++++
|
||||
tests/10ddf-fail-two-spares.broken | 5 +++
|
||||
tests/10ddf-incremental-wrong-order.broken | 9 +++++
|
||||
tests/14imsm-r1_2d-grow-r1_3d.broken | 5 +++
|
||||
tests/14imsm-r1_2d-takeover-r0_2d.broken | 6 +++
|
||||
tests/18imsm-r10_4d-takeover-r0_2d.broken | 5 +++
|
||||
tests/18imsm-r1_2d-takeover-r0_1d.broken | 6 +++
|
||||
tests/19raid6auto-repair.broken | 5 +++
|
||||
tests/19raid6repair.broken | 5 +++
|
||||
24 files changed, 226 insertions(+)
|
||||
create mode 100644 tests/01r5integ.broken
|
||||
create mode 100644 tests/01raid6integ.broken
|
||||
create mode 100644 tests/04r5swap.broken
|
||||
create mode 100644 tests/07autoassemble.broken
|
||||
create mode 100644 tests/07autodetect.broken
|
||||
create mode 100644 tests/07changelevelintr.broken
|
||||
create mode 100644 tests/07changelevels.broken
|
||||
create mode 100644 tests/07reshape5intr.broken
|
||||
create mode 100644 tests/07revert-grow.broken
|
||||
create mode 100644 tests/07revert-shrink.broken
|
||||
create mode 100644 tests/07testreshape5.broken
|
||||
create mode 100644 tests/09imsm-assemble.broken
|
||||
create mode 100644 tests/09imsm-create-fail-rebuild.broken
|
||||
create mode 100644 tests/09imsm-overlap.broken
|
||||
create mode 100644 tests/10ddf-assemble-missing.broken
|
||||
create mode 100644 tests/10ddf-fail-create-race.broken
|
||||
create mode 100644 tests/10ddf-fail-two-spares.broken
|
||||
create mode 100644 tests/10ddf-incremental-wrong-order.broken
|
||||
create mode 100644 tests/14imsm-r1_2d-grow-r1_3d.broken
|
||||
create mode 100644 tests/14imsm-r1_2d-takeover-r0_2d.broken
|
||||
create mode 100644 tests/18imsm-r10_4d-takeover-r0_2d.broken
|
||||
create mode 100644 tests/18imsm-r1_2d-takeover-r0_1d.broken
|
||||
create mode 100644 tests/19raid6auto-repair.broken
|
||||
create mode 100644 tests/19raid6repair.broken
|
||||
|
||||
diff --git a/tests/01r5integ.broken b/tests/01r5integ.broken
|
||||
new file mode 100644
|
||||
index 0000000..2073763
|
||||
--- /dev/null
|
||||
+++ b/tests/01r5integ.broken
|
||||
@@ -0,0 +1,7 @@
|
||||
+fails rarely
|
||||
+
|
||||
+Fails about 1 in every 30 runs with a sha mismatch error:
|
||||
+
|
||||
+ c49ab26e1b01def7874af9b8a6d6d0c29fdfafe6 /dev/md0 does not match
|
||||
+ 15dc2f73262f811ada53c65e505ceec9cf025cb9 /dev/md0 with /dev/loop3
|
||||
+ missing
|
||||
diff --git a/tests/01raid6integ.broken b/tests/01raid6integ.broken
|
||||
new file mode 100644
|
||||
index 0000000..1df735f
|
||||
--- /dev/null
|
||||
+++ b/tests/01raid6integ.broken
|
||||
@@ -0,0 +1,7 @@
|
||||
+fails infrequently
|
||||
+
|
||||
+Fails about 1 in 5 with a sha mismatch:
|
||||
+
|
||||
+ 8286c2bc045ae2cfe9f8b7ae3a898fa25db6926f /dev/md0 does not match
|
||||
+ a083a0738b58caab37fd568b91b177035ded37df /dev/md0 with /dev/loop2 and
|
||||
+ /dev/loop3 missing
|
||||
diff --git a/tests/04r5swap.broken b/tests/04r5swap.broken
|
||||
new file mode 100644
|
||||
index 0000000..e38987d
|
||||
--- /dev/null
|
||||
+++ b/tests/04r5swap.broken
|
||||
@@ -0,0 +1,7 @@
|
||||
+always fails
|
||||
+
|
||||
+Fails with errors:
|
||||
+
|
||||
+ mdadm: /dev/loop0 has no superblock - assembly aborted
|
||||
+
|
||||
+ ERROR: no recovery happening
|
||||
diff --git a/tests/07autoassemble.broken b/tests/07autoassemble.broken
|
||||
new file mode 100644
|
||||
index 0000000..8be0940
|
||||
--- /dev/null
|
||||
+++ b/tests/07autoassemble.broken
|
||||
@@ -0,0 +1,8 @@
|
||||
+always fails
|
||||
+
|
||||
+Prints lots of messages, but the array doesn't assemble. Error
|
||||
+possibly related to:
|
||||
+
|
||||
+ mdadm: /dev/md/1 is busy - skipping
|
||||
+ mdadm: no recogniseable superblock on /dev/md/testing:0
|
||||
+ mdadm: /dev/md/2 is busy - skipping
|
||||
diff --git a/tests/07autodetect.broken b/tests/07autodetect.broken
|
||||
new file mode 100644
|
||||
index 0000000..294954a
|
||||
--- /dev/null
|
||||
+++ b/tests/07autodetect.broken
|
||||
@@ -0,0 +1,5 @@
|
||||
+always fails
|
||||
+
|
||||
+Fails with error:
|
||||
+
|
||||
+ ERROR: no resync happening
|
||||
diff --git a/tests/07changelevelintr.broken b/tests/07changelevelintr.broken
|
||||
new file mode 100644
|
||||
index 0000000..284b490
|
||||
--- /dev/null
|
||||
+++ b/tests/07changelevelintr.broken
|
||||
@@ -0,0 +1,9 @@
|
||||
+always fails
|
||||
+
|
||||
+Fails with errors:
|
||||
+
|
||||
+ mdadm: this change will reduce the size of the array.
|
||||
+ use --grow --array-size first to truncate array.
|
||||
+ e.g. mdadm --grow /dev/md0 --array-size 56832
|
||||
+
|
||||
+ ERROR: no reshape happening
|
||||
diff --git a/tests/07changelevels.broken b/tests/07changelevels.broken
|
||||
new file mode 100644
|
||||
index 0000000..9b930d9
|
||||
--- /dev/null
|
||||
+++ b/tests/07changelevels.broken
|
||||
@@ -0,0 +1,9 @@
|
||||
+always fails
|
||||
+
|
||||
+Fails with errors:
|
||||
+
|
||||
+ mdadm: /dev/loop0 is smaller than given size. 18976K < 19968K + metadata
|
||||
+ mdadm: /dev/loop1 is smaller than given size. 18976K < 19968K + metadata
|
||||
+ mdadm: /dev/loop2 is smaller than given size. 18976K < 19968K + metadata
|
||||
+
|
||||
+ ERROR: /dev/md0 isn't a block device.
|
||||
diff --git a/tests/07reshape5intr.broken b/tests/07reshape5intr.broken
|
||||
new file mode 100644
|
||||
index 0000000..efe52a6
|
||||
--- /dev/null
|
||||
+++ b/tests/07reshape5intr.broken
|
||||
@@ -0,0 +1,45 @@
|
||||
+always fails
|
||||
+
|
||||
+This patch, recently added to md-next causes the test to always fail:
|
||||
+
|
||||
+7e6ba434cc60 ("md: don't unregister sync_thread with reconfig_mutex
|
||||
+held")
|
||||
+
|
||||
+The new error is simply:
|
||||
+
|
||||
+ ERROR: no reshape happening
|
||||
+
|
||||
+Before the patch, the error seen is below.
|
||||
+
|
||||
+--
|
||||
+
|
||||
+fails infrequently
|
||||
+
|
||||
+Fails roughly 1 in 4 runs with errors:
|
||||
+
|
||||
+ mdadm: Merging with already-assembled /dev/md/0
|
||||
+ mdadm: cannot re-read metadata from /dev/loop6 - aborting
|
||||
+
|
||||
+ ERROR: no reshape happening
|
||||
+
|
||||
+Also have seen a random deadlock:
|
||||
+
|
||||
+ INFO: task mdadm:109702 blocked for more than 30 seconds.
|
||||
+ Not tainted 5.18.0-rc3-eid-vmlocalyes-dbg-00095-g3c2b5427979d #2040
|
||||
+ "echo 0 > /proc/sys/kernel/hung_task_timeout_secs" disables this message.
|
||||
+ task:mdadm state:D stack: 0 pid:109702 ppid: 1 flags:0x00004000
|
||||
+ Call Trace:
|
||||
+ <TASK>
|
||||
+ __schedule+0x67e/0x13b0
|
||||
+ schedule+0x82/0x110
|
||||
+ mddev_suspend+0x2e1/0x330
|
||||
+ suspend_lo_store+0xbd/0x140
|
||||
+ md_attr_store+0xcb/0x130
|
||||
+ sysfs_kf_write+0x89/0xb0
|
||||
+ kernfs_fop_write_iter+0x202/0x2c0
|
||||
+ new_sync_write+0x222/0x330
|
||||
+ vfs_write+0x3bc/0x4d0
|
||||
+ ksys_write+0xd9/0x180
|
||||
+ __x64_sys_write+0x43/0x50
|
||||
+ do_syscall_64+0x3b/0x90
|
||||
+ entry_SYSCALL_64_after_hwframe+0x44/0xae
|
||||
diff --git a/tests/07revert-grow.broken b/tests/07revert-grow.broken
|
||||
new file mode 100644
|
||||
index 0000000..9b6db86
|
||||
--- /dev/null
|
||||
+++ b/tests/07revert-grow.broken
|
||||
@@ -0,0 +1,31 @@
|
||||
+always fails
|
||||
+
|
||||
+This patch, recently added to md-next causes the test to always fail:
|
||||
+
|
||||
+7e6ba434cc60 ("md: don't unregister sync_thread with reconfig_mutex held")
|
||||
+
|
||||
+The errors are:
|
||||
+
|
||||
+ mdadm: No active reshape to revert on /dev/loop0
|
||||
+ ERROR: active raid5 not found
|
||||
+
|
||||
+Before the patch, the error seen is below.
|
||||
+
|
||||
+--
|
||||
+
|
||||
+fails rarely
|
||||
+
|
||||
+Fails about 1 in every 30 runs with errors:
|
||||
+
|
||||
+ mdadm: Merging with already-assembled /dev/md/0
|
||||
+ mdadm: backup file /tmp/md-backup inaccessible: No such file or directory
|
||||
+ mdadm: failed to add /dev/loop1 to /dev/md/0: Invalid argument
|
||||
+ mdadm: failed to add /dev/loop2 to /dev/md/0: Invalid argument
|
||||
+ mdadm: failed to add /dev/loop3 to /dev/md/0: Invalid argument
|
||||
+ mdadm: failed to add /dev/loop0 to /dev/md/0: Invalid argument
|
||||
+ mdadm: /dev/md/0 assembled from 1 drive - need all 5 to start it
|
||||
+ (use --run to insist).
|
||||
+
|
||||
+ grep: /sys/block/md*/md/sync_action: No such file or directory
|
||||
+
|
||||
+ ERROR: active raid5 not found
|
||||
diff --git a/tests/07revert-shrink.broken b/tests/07revert-shrink.broken
|
||||
new file mode 100644
|
||||
index 0000000..c33c39e
|
||||
--- /dev/null
|
||||
+++ b/tests/07revert-shrink.broken
|
||||
@@ -0,0 +1,9 @@
|
||||
+always fails
|
||||
+
|
||||
+Fails with errors:
|
||||
+
|
||||
+ mdadm: this change will reduce the size of the array.
|
||||
+ use --grow --array-size first to truncate array.
|
||||
+ e.g. mdadm --grow /dev/md0 --array-size 53760
|
||||
+
|
||||
+ ERROR: active raid5 not found
|
||||
diff --git a/tests/07testreshape5.broken b/tests/07testreshape5.broken
|
||||
new file mode 100644
|
||||
index 0000000..a8ce03e
|
||||
--- /dev/null
|
||||
+++ b/tests/07testreshape5.broken
|
||||
@@ -0,0 +1,12 @@
|
||||
+always fails
|
||||
+
|
||||
+Test seems to run 'test_stripe' at $dir directory, but $dir is never
|
||||
+set. If $dir is adjusted to $PWD, the test still fails with:
|
||||
+
|
||||
+ mdadm: /dev/loop2 is not suitable for this array.
|
||||
+ mdadm: create aborted
|
||||
+ ++ return 1
|
||||
+ ++ cmp -s -n 8192 /dev/md0 /tmp/RandFile
|
||||
+ ++ echo cmp failed
|
||||
+ cmp failed
|
||||
+ ++ exit 2
|
||||
diff --git a/tests/09imsm-assemble.broken b/tests/09imsm-assemble.broken
|
||||
new file mode 100644
|
||||
index 0000000..a6d4d5c
|
||||
--- /dev/null
|
||||
+++ b/tests/09imsm-assemble.broken
|
||||
@@ -0,0 +1,6 @@
|
||||
+fails infrequently
|
||||
+
|
||||
+Fails roughly 1 in 10 runs with errors:
|
||||
+
|
||||
+ mdadm: /dev/loop2 is still in use, cannot remove.
|
||||
+ /dev/loop2 removal from /dev/md/container should have succeeded
|
||||
diff --git a/tests/09imsm-create-fail-rebuild.broken b/tests/09imsm-create-fail-rebuild.broken
|
||||
new file mode 100644
|
||||
index 0000000..40c4b29
|
||||
--- /dev/null
|
||||
+++ b/tests/09imsm-create-fail-rebuild.broken
|
||||
@@ -0,0 +1,5 @@
|
||||
+always fails
|
||||
+
|
||||
+Fails with error:
|
||||
+
|
||||
+ **Error**: Array size mismatch - expected 3072, actual 16384
|
||||
diff --git a/tests/09imsm-overlap.broken b/tests/09imsm-overlap.broken
|
||||
new file mode 100644
|
||||
index 0000000..e7ccab7
|
||||
--- /dev/null
|
||||
+++ b/tests/09imsm-overlap.broken
|
||||
@@ -0,0 +1,7 @@
|
||||
+always fails
|
||||
+
|
||||
+Fails with errors:
|
||||
+
|
||||
+ **Error**: Offset mismatch - expected 15360, actual 0
|
||||
+ **Error**: Offset mismatch - expected 15360, actual 0
|
||||
+ /dev/md/vol3 failed check
|
||||
diff --git a/tests/10ddf-assemble-missing.broken b/tests/10ddf-assemble-missing.broken
|
||||
new file mode 100644
|
||||
index 0000000..bfd8d10
|
||||
--- /dev/null
|
||||
+++ b/tests/10ddf-assemble-missing.broken
|
||||
@@ -0,0 +1,6 @@
|
||||
+always fails
|
||||
+
|
||||
+Fails with errors:
|
||||
+
|
||||
+ ERROR: /dev/md/vol0 has unexpected state on /dev/loop10
|
||||
+ ERROR: unexpected number of online disks on /dev/loop10
|
||||
diff --git a/tests/10ddf-fail-create-race.broken b/tests/10ddf-fail-create-race.broken
|
||||
new file mode 100644
|
||||
index 0000000..6c0df02
|
||||
--- /dev/null
|
||||
+++ b/tests/10ddf-fail-create-race.broken
|
||||
@@ -0,0 +1,7 @@
|
||||
+usually fails
|
||||
+
|
||||
+Fails about 9 out of 10 times with many errors:
|
||||
+
|
||||
+ mdadm: cannot open MISSING: No such file or directory
|
||||
+ ERROR: non-degraded array found
|
||||
+ ERROR: disk 0 not marked as failed in meta data
|
||||
diff --git a/tests/10ddf-fail-two-spares.broken b/tests/10ddf-fail-two-spares.broken
|
||||
new file mode 100644
|
||||
index 0000000..eeea56d
|
||||
--- /dev/null
|
||||
+++ b/tests/10ddf-fail-two-spares.broken
|
||||
@@ -0,0 +1,5 @@
|
||||
+fails infrequently
|
||||
+
|
||||
+Fails roughly 1 in 3 with error:
|
||||
+
|
||||
+ ERROR: /dev/md/vol1 should be optimal in meta data
|
||||
diff --git a/tests/10ddf-incremental-wrong-order.broken b/tests/10ddf-incremental-wrong-order.broken
|
||||
new file mode 100644
|
||||
index 0000000..a5af3ba
|
||||
--- /dev/null
|
||||
+++ b/tests/10ddf-incremental-wrong-order.broken
|
||||
@@ -0,0 +1,9 @@
|
||||
+always fails
|
||||
+
|
||||
+Fails with errors:
|
||||
+ ERROR: sha1sum of /dev/md/vol0 has changed
|
||||
+ ERROR: /dev/md/vol0 has unexpected state on /dev/loop10
|
||||
+ ERROR: unexpected number of online disks on /dev/loop10
|
||||
+ ERROR: /dev/md/vol0 has unexpected state on /dev/loop8
|
||||
+ ERROR: unexpected number of online disks on /dev/loop8
|
||||
+ ERROR: sha1sum of /dev/md/vol0 has changed
|
||||
diff --git a/tests/14imsm-r1_2d-grow-r1_3d.broken b/tests/14imsm-r1_2d-grow-r1_3d.broken
|
||||
new file mode 100644
|
||||
index 0000000..4ef1d40
|
||||
--- /dev/null
|
||||
+++ b/tests/14imsm-r1_2d-grow-r1_3d.broken
|
||||
@@ -0,0 +1,5 @@
|
||||
+always fails
|
||||
+
|
||||
+Fails with error:
|
||||
+
|
||||
+ mdadm/tests/func.sh: line 325: dvsize/chunk: division by 0 (error token is "chunk")
|
||||
diff --git a/tests/14imsm-r1_2d-takeover-r0_2d.broken b/tests/14imsm-r1_2d-takeover-r0_2d.broken
|
||||
new file mode 100644
|
||||
index 0000000..89cd4e5
|
||||
--- /dev/null
|
||||
+++ b/tests/14imsm-r1_2d-takeover-r0_2d.broken
|
||||
@@ -0,0 +1,6 @@
|
||||
+always fails
|
||||
+
|
||||
+Fails with error:
|
||||
+
|
||||
+ tests/func.sh: line 325: dvsize/chunk: division by 0 (error token
|
||||
+ is "chunk")
|
||||
diff --git a/tests/18imsm-r10_4d-takeover-r0_2d.broken b/tests/18imsm-r10_4d-takeover-r0_2d.broken
|
||||
new file mode 100644
|
||||
index 0000000..a27399f
|
||||
--- /dev/null
|
||||
+++ b/tests/18imsm-r10_4d-takeover-r0_2d.broken
|
||||
@@ -0,0 +1,5 @@
|
||||
+fails rarely
|
||||
+
|
||||
+Fails about 1 run in 100 with message:
|
||||
+
|
||||
+ ERROR: size is wrong for /dev/md/vol0: 2 * 5120 (chunk=128) = 20480, not 0
|
||||
diff --git a/tests/18imsm-r1_2d-takeover-r0_1d.broken b/tests/18imsm-r1_2d-takeover-r0_1d.broken
|
||||
new file mode 100644
|
||||
index 0000000..aa1982e
|
||||
--- /dev/null
|
||||
+++ b/tests/18imsm-r1_2d-takeover-r0_1d.broken
|
||||
@@ -0,0 +1,6 @@
|
||||
+always fails
|
||||
+
|
||||
+Fails with error:
|
||||
+
|
||||
+ tests/func.sh: line 325: dvsize/chunk: division by 0 (error token
|
||||
+ is "chunk")
|
||||
diff --git a/tests/19raid6auto-repair.broken b/tests/19raid6auto-repair.broken
|
||||
new file mode 100644
|
||||
index 0000000..e91a142
|
||||
--- /dev/null
|
||||
+++ b/tests/19raid6auto-repair.broken
|
||||
@@ -0,0 +1,5 @@
|
||||
+always fails
|
||||
+
|
||||
+Fails with:
|
||||
+
|
||||
+ "should detect errors"
|
||||
diff --git a/tests/19raid6repair.broken b/tests/19raid6repair.broken
|
||||
new file mode 100644
|
||||
index 0000000..e91a142
|
||||
--- /dev/null
|
||||
+++ b/tests/19raid6repair.broken
|
||||
@@ -0,0 +1,5 @@
|
||||
+always fails
|
||||
+
|
||||
+Fails with:
|
||||
+
|
||||
+ "should detect errors"
|
||||
--
|
||||
2.39.1
|
||||
|
||||
@@ -0,0 +1,30 @@
|
||||
From adb75f0bdec97dbe4aa15cc988d349775f7995ff Mon Sep 17 00:00:00 2001
|
||||
From: "martin f. krafft" <madduck@debian.org>
|
||||
Date: Mon, 3 Jan 2022 19:14:12 +0000
|
||||
Subject: [PATCH] Remove -Werror from compiler flags
|
||||
|
||||
-Werror seems like a bad idea on released/packaged code because a toolchain
|
||||
update (introducing new warnings) could break the build. We'll let upstream
|
||||
use it to beautify the code, but remove it for out builds.
|
||||
|
||||
Signed-off-by: martin f. krafft <madduck@debian.org>
|
||||
|
||||
Upstream-Status: Pending
|
||||
|
||||
---
|
||||
Makefile | 2 +-
|
||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||
|
||||
diff --git a/Makefile b/Makefile
|
||||
index 716c97c..40354ea 100644
|
||||
--- a/Makefile
|
||||
+++ b/Makefile
|
||||
@@ -50,7 +50,7 @@ ifeq ($(origin CC),default)
|
||||
CC := $(CROSS_COMPILE)gcc
|
||||
endif
|
||||
CXFLAGS ?= -ggdb
|
||||
-CWFLAGS = -Wall -Werror -Wstrict-prototypes -Wextra -Wno-unused-parameter
|
||||
+CWFLAGS = -Wall -Wstrict-prototypes -Wextra -Wno-unused-parameter
|
||||
ifdef WARN_UNUSED
|
||||
CWFLAGS += -Wp,-D_FORTIFY_SOURCE=2 -O3
|
||||
endif
|
||||
@@ -0,0 +1,14 @@
|
||||
include sys/sysmacros.h for major/minor macro definitions
|
||||
|
||||
Upstream-Status: Pending
|
||||
Signed-off-by: Khem Raj <raj.khem@gmail.com>
|
||||
--- a/mdadm.h
|
||||
+++ b/mdadm.h
|
||||
@@ -35,6 +35,7 @@ extern __off64_t lseek64 __P ((int __fd,
|
||||
|
||||
#include <sys/types.h>
|
||||
#include <sys/stat.h>
|
||||
+#include <sys/sysmacros.h>
|
||||
#include <stdint.h>
|
||||
#include <stdlib.h>
|
||||
#include <time.h>
|
||||
@@ -0,0 +1,37 @@
|
||||
From e37f7f6a0f1ef1b594574d11a8b90b8c861d047b Mon Sep 17 00:00:00 2001
|
||||
From: =?UTF-8?q?An=C3=ADbal=20Lim=C3=B3n?= <anibal.limon@linux.intel.com>
|
||||
Date: Sun, 15 Mar 2015 09:02:14 +0000
|
||||
Subject: [PATCH] mdadm: Fix build in x32 ABI
|
||||
MIME-Version: 1.0
|
||||
Content-Type: text/plain; charset=UTF-8
|
||||
Content-Transfer-Encoding: 8bit
|
||||
|
||||
When try to print time_t values as a long int it causes an error because time_t
|
||||
data type in x32 ABI is long long int.
|
||||
|
||||
Upstream-Status: Pending
|
||||
|
||||
Signed-off-by: Aníbal Limón <anibal.limon@linux.intel.com>
|
||||
|
||||
---
|
||||
monitor.c | 5 ++++-
|
||||
1 file changed, 4 insertions(+), 1 deletion(-)
|
||||
|
||||
diff --git a/monitor.c b/monitor.c
|
||||
index 81537ed..7c33382 100644
|
||||
--- a/monitor.c
|
||||
+++ b/monitor.c
|
||||
@@ -445,9 +445,12 @@ static int read_and_act(struct active_array *a, fd_set *fds)
|
||||
if (FD_ISSET(mdi->bb_fd, fds))
|
||||
check_for_cleared_bb(a, mdi);
|
||||
}
|
||||
-
|
||||
gettimeofday(&tv, NULL);
|
||||
+#if defined(__x86_64__) && defined(__ILP32__)
|
||||
+ dprintf("(%d): %lld.%06lld state:%s prev:%s action:%s prev: %s start:%llu\n",
|
||||
+#else
|
||||
dprintf("(%d): %ld.%06ld state:%s prev:%s action:%s prev: %s start:%llu\n",
|
||||
+#endif
|
||||
a->info.container_member,
|
||||
tv.tv_sec, tv.tv_usec,
|
||||
array_states[a->curr_state],
|
||||
72
sources/poky/meta/recipes-extended/mdadm/files/mdadm.init
Normal file
72
sources/poky/meta/recipes-extended/mdadm/files/mdadm.init
Normal file
@@ -0,0 +1,72 @@
|
||||
#!/bin/sh
|
||||
#
|
||||
# Start the MD monitor daemon for all active MD arrays if desired.
|
||||
#
|
||||
### BEGIN INIT INFO
|
||||
# Provides: mdadm
|
||||
# Required-Start: $local_fs $syslog mdadm-raid
|
||||
# Required-Stop: $local_fs $syslog mdadm-raid
|
||||
# Default-Start: 2 3 4 5
|
||||
# Default-Stop: 0 1 6
|
||||
# Short-Description: MD monitoring daemon
|
||||
# Description: mdadm provides a monitor mode, in which it will scan for
|
||||
# problems with the MD devices. If a problem is found, the
|
||||
# administrator is alerted via email, or a custom script is
|
||||
# run.
|
||||
### END INIT INFO
|
||||
#
|
||||
|
||||
MDADM=/sbin/mdadm
|
||||
RUNDIR=/var/run/mdadm
|
||||
PIDFILE=$RUNDIR/monitor.pid
|
||||
DEBIANCONFIG=/etc/default/mdadm
|
||||
|
||||
test -x "$MDADM" || exit 0
|
||||
|
||||
test -f /proc/mdstat || exit 0
|
||||
|
||||
START_DAEMON=true
|
||||
test -f $DEBIANCONFIG && . $DEBIANCONFIG
|
||||
|
||||
. /lib/lsb/init-functions
|
||||
|
||||
# Include functions
|
||||
. /etc/init.d/functions
|
||||
|
||||
case "${1:-}" in
|
||||
start)
|
||||
if is_true $START_DAEMON; then
|
||||
log_daemon_msg "Starting MD monitoring service" "mdadm --monitor"
|
||||
mkdir -p $RUNDIR
|
||||
start-stop-daemon -S -p $PIDFILE -x $MDADM -- \
|
||||
--monitor --pid-file $PIDFILE --daemonise --scan ${DAEMON_OPTIONS:-}
|
||||
RETVAL=$?
|
||||
log_end_msg $RETVAL
|
||||
exit $RETVAL
|
||||
fi
|
||||
;;
|
||||
stop)
|
||||
if [ -f $PIDFILE ] ; then
|
||||
log_daemon_msg "Stopping MD monitoring service" "mdadm --monitor"
|
||||
start-stop-daemon -K -p $PIDFILE -x $MDADM
|
||||
RETVAL=$?
|
||||
rm -f $PIDFILE
|
||||
log_end_msg $RETVAL
|
||||
exit $RETVAL
|
||||
fi
|
||||
;;
|
||||
status)
|
||||
status -p $PIDFILE "$MDADM" && exit 0 || exit $?
|
||||
;;
|
||||
restart|reload|force-reload)
|
||||
${0:-} stop
|
||||
${0:-} start
|
||||
;;
|
||||
*)
|
||||
echo "Usage: ${0:-} {start|stop|status|restart|reload|force-reload}" >&2
|
||||
exit 1
|
||||
;;
|
||||
esac
|
||||
|
||||
exit 0
|
||||
|
||||
10
sources/poky/meta/recipes-extended/mdadm/files/run-ptest
Normal file
10
sources/poky/meta/recipes-extended/mdadm/files/run-ptest
Normal file
@@ -0,0 +1,10 @@
|
||||
#!/bin/sh
|
||||
|
||||
logdir=$PWD/logs
|
||||
targetdir=/mdadm-testing-dir
|
||||
|
||||
rm -rf $targetdir $logdir
|
||||
mkdir -p $targetdir $logdir
|
||||
|
||||
# make the test continue to execute even one fail
|
||||
./test --keep-going --disable-integrity --skip-broken --save-logs --logdir=$logdir
|
||||
Reference in New Issue
Block a user