From ca78f33aa3379405843e5adc7a9dfc458c260a0a0980f236979e6e3b9300b921 Mon Sep 17 00:00:00 2001 From: Coly Li Date: Mon, 23 Sep 2024 02:32:30 +0000 Subject: [PATCH] - Detail: remove duplicated code (bsc#1226413) 0008-Detail-remove-duplicated-code.patch - mdadm: Fix native --detail --export (bsc#1226413) 0009-mdadm-Fix-native-detail-export.patch OBS-URL: https://build.opensuse.org/package/show/Base:System/mdadm?expand=0&rev=239 --- .gitattributes | 23 + .gitignore | 1 + ...rdcoded-checkpoint-interval-checking.patch | 68 + 0002-monitor-refactor-checkpoint-update.patch | 100 + ...r-intel-Fix-first-checkpoint-restart.patch | 51 + ...e-update_tail-assign-to-Grow_reshape.patch | 65 + ...-understanding-output-section-in-man.patch | 60 + ...ge-devnm-to-const-in-mdmon-functions.patch | 59 + ...-mdmon-when-it-is-stared-via-systemd.patch | 125 + 0008-Detail-remove-duplicated-code.patch | 79 + 0009-mdadm-Fix-native-detail-export.patch | 251 ++ 1001-display-timeout-status.patch | 30 + ...ar-format-fix-of-mdcheck_start-timer.patch | 25 + ...e-Dell-softraid-array-as-local-array.patch | 59 + ...-mdadm_env.sh-from-usr-libexec-mdadm.patch | 61 + ...e-Intel-Alderlake-RSTe-configuration.patch | 58 + Software-RAID.HOWTO.tar.bz2 | 3 + mdadm-4.3.tar.xz | 3 + mdadm.changes | 3227 +++++++++++++++++ mdadm.spec | 147 + sysconfig.mdadm | 73 + 21 files changed, 4568 insertions(+) create mode 100644 .gitattributes create mode 100644 .gitignore create mode 100644 0001-Remove-hardcoded-checkpoint-interval-checking.patch create mode 100644 0002-monitor-refactor-checkpoint-update.patch create mode 100644 0003-Super-intel-Fix-first-checkpoint-restart.patch create mode 100644 0004-Grow-Move-update_tail-assign-to-Grow_reshape.patch create mode 100644 0005-Add-understanding-output-section-in-man.patch create mode 100644 0006-util.c-change-devnm-to-const-in-mdmon-functions.patch create mode 100644 0007-Wait-for-mdmon-when-it-is-stared-via-systemd.patch create mode 100644 0008-Detail-remove-duplicated-code.patch create mode 100644 0009-mdadm-Fix-native-detail-export.patch create mode 100644 1001-display-timeout-status.patch create mode 100644 1002-OnCalendar-format-fix-of-mdcheck_start-timer.patch create mode 100644 1003-mdadm-treat-the-Dell-softraid-array-as-local-array.patch create mode 100644 1004-call-mdadm_env.sh-from-usr-libexec-mdadm.patch create mode 100644 1005-mdadm-enable-Intel-Alderlake-RSTe-configuration.patch create mode 100644 Software-RAID.HOWTO.tar.bz2 create mode 100644 mdadm-4.3.tar.xz create mode 100644 mdadm.changes create mode 100644 mdadm.spec create mode 100644 sysconfig.mdadm diff --git a/.gitattributes b/.gitattributes new file mode 100644 index 0000000..9b03811 --- /dev/null +++ b/.gitattributes @@ -0,0 +1,23 @@ +## Default LFS +*.7z filter=lfs diff=lfs merge=lfs -text +*.bsp filter=lfs diff=lfs merge=lfs -text +*.bz2 filter=lfs diff=lfs merge=lfs -text +*.gem filter=lfs diff=lfs merge=lfs -text +*.gz filter=lfs diff=lfs merge=lfs -text +*.jar filter=lfs diff=lfs merge=lfs -text +*.lz filter=lfs diff=lfs merge=lfs -text +*.lzma filter=lfs diff=lfs merge=lfs -text +*.obscpio filter=lfs diff=lfs merge=lfs -text +*.oxt filter=lfs diff=lfs merge=lfs -text +*.pdf filter=lfs diff=lfs merge=lfs -text +*.png filter=lfs diff=lfs merge=lfs -text +*.rpm filter=lfs diff=lfs merge=lfs -text +*.tbz filter=lfs diff=lfs merge=lfs -text +*.tbz2 filter=lfs diff=lfs merge=lfs -text +*.tgz filter=lfs diff=lfs merge=lfs -text +*.ttf filter=lfs diff=lfs merge=lfs -text +*.txz filter=lfs diff=lfs merge=lfs -text +*.whl filter=lfs diff=lfs merge=lfs -text +*.xz filter=lfs diff=lfs merge=lfs -text +*.zip filter=lfs diff=lfs merge=lfs -text +*.zst filter=lfs diff=lfs merge=lfs -text diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..57affb6 --- /dev/null +++ b/.gitignore @@ -0,0 +1 @@ +.osc diff --git a/0001-Remove-hardcoded-checkpoint-interval-checking.patch b/0001-Remove-hardcoded-checkpoint-interval-checking.patch new file mode 100644 index 0000000..16b300f --- /dev/null +++ b/0001-Remove-hardcoded-checkpoint-interval-checking.patch @@ -0,0 +1,68 @@ +From aec3b907de48be54106600a1ecb69d1231f4801d Mon Sep 17 00:00:00 2001 +From: Mateusz Kusiak +Date: Thu, 18 Jan 2024 11:30:15 +0100 +Subject: [PATCH 1/5] Remove hardcoded checkpoint interval checking +Git-commit: aec3b907de48be54106600a1ecb69d1231f4801d +Patch-mainline: mdadm-4.3+ +References: jsc#PED-7542 + +Mdmon assumes that kernel marks checkpoint every 1/16 of the volume size +and that the checkpoints are equal in size. This is not true, kernel may +mark checkpoints more frequently depending on several factors, including +sync speed. This results in checkpoints reported by mdadm --examine +falling behind the one reported by kernel. + +Remove hardcoded checkpoint interval checking. + +Signed-off-by: Mateusz Kusiak +Signed-off-by: Mariusz Tkaczyk +Signed-off-by: Coly Li +--- + monitor.c | 22 ++++++---------------- + 1 file changed, 6 insertions(+), 16 deletions(-) + +diff --git a/monitor.c b/monitor.c +index 4acec67..b8d9e88 100644 +--- a/monitor.c ++++ b/monitor.c +@@ -564,22 +564,10 @@ static int read_and_act(struct active_array *a, fd_set *fds) + } + } + +- /* Check for recovery checkpoint notifications. We need to be a +- * minimum distance away from the last checkpoint to prevent +- * over checkpointing. Note reshape checkpointing is handled +- * in the second branch. ++ /* Handle reshape checkpointing + */ +- if (sync_completed > a->last_checkpoint && +- sync_completed - a->last_checkpoint > a->info.component_size >> 4 && +- a->curr_action > reshape) { +- /* A (non-reshape) sync_action has reached a checkpoint. +- * Record the updated position in the metadata +- */ +- a->last_checkpoint = sync_completed; +- a->container->ss->set_array_state(a, a->curr_state <= clean); +- } else if ((a->curr_action == idle && a->prev_action == reshape) || +- (a->curr_action == reshape && +- sync_completed > a->last_checkpoint)) { ++ if ((a->curr_action == idle && a->prev_action == reshape) || ++ (a->curr_action == reshape && sync_completed > a->last_checkpoint)) { + /* Reshape has progressed or completed so we need to + * update the array state - and possibly the array size + */ +@@ -607,8 +595,10 @@ static int read_and_act(struct active_array *a, fd_set *fds) + a->last_checkpoint = sync_completed; + } + +- if (sync_completed > a->last_checkpoint) ++ if (sync_completed > a->last_checkpoint) { + a->last_checkpoint = sync_completed; ++ a->container->ss->set_array_state(a, a->curr_state <= clean); ++ } + + if (sync_completed >= a->info.component_size) + a->last_checkpoint = 0; +-- +2.35.3 + diff --git a/0002-monitor-refactor-checkpoint-update.patch b/0002-monitor-refactor-checkpoint-update.patch new file mode 100644 index 0000000..a4f77f6 --- /dev/null +++ b/0002-monitor-refactor-checkpoint-update.patch @@ -0,0 +1,100 @@ +From cf87fe75fd83dac008ea116c2c52ec69783fdf6a Mon Sep 17 00:00:00 2001 +From: Mateusz Kusiak +Date: Thu, 18 Jan 2024 11:30:16 +0100 +Subject: [PATCH 2/5] monitor: refactor checkpoint update +Git-commit: cf87fe75fd83dac008ea116c2c52ec69783fdf6a +Patch-mainline: mdadm-4.3+ +References: jsc#PED-7542 + +"if" statements of checkpoint updates have too many responsibilties. +This results in unclear code flow and duplicated code. + +Refactor checkpoint update code and simplify "if" statements. + +Signed-off-by: Mateusz Kusiak +Signed-off-by: Mariusz Tkaczyk +Signed-off-by: Coly Li +--- + monitor.c | 51 +++++++++++++++++++++++++-------------------------- + 1 file changed, 25 insertions(+), 26 deletions(-) + +diff --git a/monitor.c b/monitor.c +index b8d9e88..be0bec7 100644 +--- a/monitor.c ++++ b/monitor.c +@@ -412,6 +412,7 @@ static int read_and_act(struct active_array *a, fd_set *fds) + int ret = 0; + int count = 0; + struct timeval tv; ++ bool write_checkpoint = false; + + a->next_state = bad_word; + a->next_action = bad_action; +@@ -564,40 +565,38 @@ static int read_and_act(struct active_array *a, fd_set *fds) + } + } + +- /* Handle reshape checkpointing +- */ +- if ((a->curr_action == idle && a->prev_action == reshape) || +- (a->curr_action == reshape && sync_completed > a->last_checkpoint)) { +- /* Reshape has progressed or completed so we need to +- * update the array state - and possibly the array size +- */ ++ /* Update reshape checkpoint, depending if it finished or progressed */ ++ if (a->curr_action == idle && a->prev_action == reshape) { ++ char buf[SYSFS_MAX_BUF_SIZE]; ++ + if (sync_completed != 0) + a->last_checkpoint = sync_completed; +- /* We might need to update last_checkpoint depending on +- * the reason that reshape finished. +- * if array reshape is really finished: +- * set check point to the end, this allows +- * set_array_state() to finalize reshape in metadata +- * if reshape if broken: do not set checkpoint to the end +- * this allows for reshape restart from checkpoint ++ ++ /* ++ * If reshape really finished, set checkpoint to the end to finalize it. ++ * Do not set checkpoint if reshape is broken. ++ * Reshape will restart from last checkpoint. + */ +- if ((a->curr_action != reshape) && +- (a->prev_action == reshape)) { +- char buf[SYSFS_MAX_BUF_SIZE]; +- if ((sysfs_get_str(&a->info, NULL, +- "reshape_position", +- buf, +- sizeof(buf)) >= 0) && +- str_is_none(buf) == true) ++ if (sysfs_get_str(&a->info, NULL, "reshape_position", buf, sizeof(buf)) >= 0) ++ if (str_is_none(buf) == true) + a->last_checkpoint = a->info.component_size; +- } +- a->container->ss->set_array_state(a, a->curr_state <= clean); +- a->last_checkpoint = sync_completed; ++ ++ write_checkpoint = true; + } + +- if (sync_completed > a->last_checkpoint) { ++ if (a->curr_action >= reshape && sync_completed > a->last_checkpoint) { ++ /* Update checkpoint if neither reshape nor idle action */ + a->last_checkpoint = sync_completed; ++ ++ write_checkpoint = true; ++ } ++ ++ /* Save checkpoint */ ++ if (write_checkpoint) { + a->container->ss->set_array_state(a, a->curr_state <= clean); ++ ++ if (a->curr_action <= reshape) ++ a->last_checkpoint = sync_completed; + } + + if (sync_completed >= a->info.component_size) +-- +2.35.3 + diff --git a/0003-Super-intel-Fix-first-checkpoint-restart.patch b/0003-Super-intel-Fix-first-checkpoint-restart.patch new file mode 100644 index 0000000..0c4b562 --- /dev/null +++ b/0003-Super-intel-Fix-first-checkpoint-restart.patch @@ -0,0 +1,51 @@ +From fdb7e802f4cf64d067c3abaafa35056e2bc1ed43 Mon Sep 17 00:00:00 2001 +From: Mateusz Kusiak +Date: Thu, 18 Jan 2024 11:30:17 +0100 +Subject: [PATCH 3/5] Super-intel: Fix first checkpoint restart +Git-commit: fdb7e802f4cf64d067c3abaafa35056e2bc1ed43 +Patch-mainline: mdadm-4.3+ +References: jsc#PED-7542 + +When imsm based array is stopped after reaching first checkpoint and +then assembled, first checkpoint is reported as 0. + +This behaviour is valid only for initial checkpoint, if the array was +stopped while performing some action. + +Last checkpoint value is not taken from metadata but always starts +with 0 and it's incremented when sync_completed in sysfs changes. + +In simplification, read_and_act() is responsible for checkpoint updates +and is executed each time sysfs checkpoint update happens. For first +checkpoint it is executed twice and due to marking checkpoint before +triggering any action on the array, it is impossible to read +sync_completed from sysfs in just two iterations. + +The workaround to this is not marking any checkpoint for first +sysfs checkpoint after RAID assembly, to preserve checkpoint value +stored in metadata. + +Signed-off-by: Mateusz Kusiak +Signed-off-by: Mariusz Tkaczyk +Signed-off-by: Coly Li +--- + super-intel.c | 3 +++ + 1 file changed, 3 insertions(+) + +diff --git a/super-intel.c b/super-intel.c +index dbea235..e61f3f6 100644 +--- a/super-intel.c ++++ b/super-intel.c +@@ -8771,6 +8771,9 @@ static int imsm_set_array_state(struct active_array *a, int consistent) + super->updates_pending++; + } + ++ if (a->prev_action == idle) ++ goto skip_mark_checkpoint; ++ + mark_checkpoint: + /* skip checkpointing for general migration, + * it is controlled in mdadm +-- +2.35.3 + diff --git a/0004-Grow-Move-update_tail-assign-to-Grow_reshape.patch b/0004-Grow-Move-update_tail-assign-to-Grow_reshape.patch new file mode 100644 index 0000000..1ed586a --- /dev/null +++ b/0004-Grow-Move-update_tail-assign-to-Grow_reshape.patch @@ -0,0 +1,65 @@ +From ea2ca7ed3dbbf881ce08d80fe371f2aaf05011c3 Mon Sep 17 00:00:00 2001 +From: Mateusz Kusiak +Date: Thu, 18 Jan 2024 11:30:18 +0100 +Subject: [PATCH 4/5] Grow: Move update_tail assign to Grow_reshape() +Git-commit: ea2ca7ed3dbbf881ce08d80fe371f2aaf05011c3 +Patch-mainline: mdadm-4.3+ +References: jsc#PED-7542 + +Due to e919fb0af245 ("FIX: Enable metadata updates for raid0") code +can't enter super-intel.c:3415, resulting in checkpoint not being +saved to metadata for second volume in matrix raid array. +This results in checkpoint being stuck at last value for the +first volume. + +Move st->update_tail to Grow_reshape() so it is assigned for each +volume. + +Signed-off-by: Mateusz Kusiak +Signed-off-by: Mariusz Tkaczyk +Signed-off-by: Coly Li +--- + Grow.c | 13 +++++++------ + 1 file changed, 7 insertions(+), 6 deletions(-) + +diff --git a/Grow.c b/Grow.c +index f95dae8..5498e54 100644 +--- a/Grow.c ++++ b/Grow.c +@@ -2085,9 +2085,10 @@ int Grow_reshape(char *devname, int fd, + if (!mdmon_running(st->container_devnm)) + start_mdmon(st->container_devnm); + ping_monitor(container); +- if (mdmon_running(st->container_devnm) && +- st->update_tail == NULL) +- st->update_tail = &st->updates; ++ if (mdmon_running(st->container_devnm) == false) { ++ pr_err("No mdmon found. Grow cannot continue.\n"); ++ goto release; ++ } + } + + if (s->size == MAX_SIZE) +@@ -3048,6 +3049,8 @@ static int reshape_array(char *container, int fd, char *devname, + dprintf("Cannot get array information.\n"); + goto release; + } ++ if (st->update_tail == NULL) ++ st->update_tail = &st->updates; + if (array.level == 0 && info->component_size == 0) { + get_dev_size(fd, NULL, &array_size); + info->component_size = array_size / array.raid_disks; +@@ -5152,9 +5155,7 @@ int Grow_continue_command(char *devname, int fd, + start_mdmon(container); + ping_monitor(container); + +- if (mdmon_running(container)) +- st->update_tail = &st->updates; +- else { ++ if (mdmon_running(container) == false) { + pr_err("No mdmon found. Grow cannot continue.\n"); + ret_val = 1; + goto Grow_continue_command_exit; +-- +2.35.3 + diff --git a/0005-Add-understanding-output-section-in-man.patch b/0005-Add-understanding-output-section-in-man.patch new file mode 100644 index 0000000..1e8ea2b --- /dev/null +++ b/0005-Add-understanding-output-section-in-man.patch @@ -0,0 +1,60 @@ +From 37eeae381a8ed07a1fabb64184fe45d95a861496 Mon Sep 17 00:00:00 2001 +From: Mateusz Kusiak +Date: Thu, 18 Jan 2024 11:30:19 +0100 +Subject: [PATCH 5/5] Add understanding output section in man +Git-commit: 37eeae381a8ed07a1fabb64184fe45d95a861496 +Patch-mainline: mdadm-4.3+ +References: jsc#PED-7542 + +Add new section in man for explaining mdadm outputs. +Describe checkpoint entry. + +Signed-off-by: Mateusz Kusiak +Signed-off-by: Mariusz Tkaczyk +Signed-off-by: Coly Li +--- + mdadm.8.in | 21 ++++++++++++++++++++- + 1 file changed, 20 insertions(+), 1 deletion(-) + +diff --git a/mdadm.8.in b/mdadm.8.in +index 96a4a08..9ba6682 100644 +--- a/mdadm.8.in ++++ b/mdadm.8.in +@@ -3179,7 +3179,7 @@ environment. This can be useful for testing or for disaster + recovery. You should be aware that interoperability may be + compromised by setting this value. + +-These change can also be suppressed by adding ++These change can also be suppressed by adding + .B mdadm.imsm.test=1 + to the kernel command line. This makes it easy to test IMSM + code in a virtual machine that doesn't have IMSM virtual hardware. +@@ -3454,6 +3454,25 @@ is any string. These names are supported by + since version 3.3 provided they are enabled in + .IR mdadm.conf . + ++.SH UNDERSTANDING OUTPUT ++ ++.TP ++EXAMINE ++ ++.TP ++.B checkpoint ++Checkpoint value is reported when array is performing some action including ++resync, recovery or reshape. Checkpoints allow resuming action from certain ++point if it was interrupted. ++ ++Checkpoint is reported as combination of two values: current migration unit ++and number of blocks per unit. By multiplying those values and dividing by ++array size checkpoint progress percentage can be obtained in relation to ++current progress reported in /proc/mdstat. Checkpoint is also related to (and ++sometimes based on) sysfs entry sync_completed but depending on action units ++may differ. Even if units are the same, it should not be expected that ++checkpoint and sync_completed will be exact match nor updated simultaneously. ++ + .SH NOTE + .I mdadm + was previously known as +-- +2.35.3 + diff --git a/0006-util.c-change-devnm-to-const-in-mdmon-functions.patch b/0006-util.c-change-devnm-to-const-in-mdmon-functions.patch new file mode 100644 index 0000000..6ac3a72 --- /dev/null +++ b/0006-util.c-change-devnm-to-const-in-mdmon-functions.patch @@ -0,0 +1,59 @@ +From b0f4e8e30f38d83f7e3f53d01d72d4cb3b4d42d7 Mon Sep 17 00:00:00 2001 +From: Kinga Stefaniuk +Date: Tue, 7 May 2024 05:38:55 +0200 +Subject: [PATCH] util.c: change devnm to const in mdmon functions +Git-commit: b0f4e8e30f38d83f7e3f53d01d72d4cb3b4d42d7 +Patch-mainline: mdadm-4.3+ +References: bsc#1225307 + +Devnm shall not be changed inside mdmon_running() +and mdmon_pid() functions, change this parameter to const. + +Signed-off-by: Kinga Stefaniuk +Signed-off-by: Mariusz Tkaczyk +Signed-off-by: Coly Li +--- + mdadm.h | 4 ++-- + util.c | 4 ++-- + 2 files changed, 4 insertions(+), 4 deletions(-) + +diff --git a/mdadm.h b/mdadm.h +index 2ff3e463..1ba541fc 100644 +--- a/mdadm.h ++++ b/mdadm.h +@@ -1768,8 +1768,8 @@ extern int is_subarray_active(char *subarray, char *devname); + extern int open_subarray(char *dev, char *subarray, struct supertype *st, int quiet); + extern struct superswitch *version_to_superswitch(char *vers); + +-extern int mdmon_running(char *devnm); +-extern int mdmon_pid(char *devnm); ++extern int mdmon_running(const char *devnm); ++extern int mdmon_pid(const char *devnm); + extern int check_env(char *name); + extern __u32 random32(void); + extern void random_uuid(__u8 *buf); +diff --git a/util.c b/util.c +index 4fbf11c4..e2b490e1 100644 +--- a/util.c ++++ b/util.c +@@ -1902,7 +1902,7 @@ unsigned long long min_recovery_start(struct mdinfo *array) + return recovery_start; + } + +-int mdmon_pid(char *devnm) ++int mdmon_pid(const char *devnm) + { + char path[100]; + char pid[10]; +@@ -1922,7 +1922,7 @@ int mdmon_pid(char *devnm) + return atoi(pid); + } + +-int mdmon_running(char *devnm) ++int mdmon_running(const char *devnm) + { + int pid = mdmon_pid(devnm); + if (pid <= 0) +-- +2.35.3 + diff --git a/0007-Wait-for-mdmon-when-it-is-stared-via-systemd.patch b/0007-Wait-for-mdmon-when-it-is-stared-via-systemd.patch new file mode 100644 index 0000000..37071ce --- /dev/null +++ b/0007-Wait-for-mdmon-when-it-is-stared-via-systemd.patch @@ -0,0 +1,125 @@ +From aa1cc5815d2b14a8b47add18cfaa8264e19c10ce Mon Sep 17 00:00:00 2001 +From: Kinga Stefaniuk +Date: Tue, 7 May 2024 05:38:56 +0200 +Subject: [PATCH] Wait for mdmon when it is stared via systemd +Git-commit: aa1cc5815d2b14a8b47add18cfaa8264e19c10ce +Patch-mainline: mdadm-4.3+ +References: bsc#1225307 + +When mdmon is being started it may need few seconds to start. +For now, we didn't wait for it. Introduce wait_for_mdmon() +function, which waits up to 5 seconds for mdmon to start completely. + +Signed-off-by: Kinga Stefaniuk +Signed-off-by: Mariusz Tkaczyk +Signed-off-by: Coly Li +--- + Assemble.c | 4 ++-- + Grow.c | 7 ++++--- + mdadm.h | 2 ++ + util.c | 29 +++++++++++++++++++++++++++++ + 4 files changed, 37 insertions(+), 5 deletions(-) + +diff --git a/Assemble.c b/Assemble.c +index f5e9ab1f..83dced19 100644 +--- a/Assemble.c ++++ b/Assemble.c +@@ -2173,8 +2173,8 @@ int assemble_container_content(struct supertype *st, int mdfd, + if (!mdmon_running(st->container_devnm)) + start_mdmon(st->container_devnm); + ping_monitor(st->container_devnm); +- if (mdmon_running(st->container_devnm) && +- st->update_tail == NULL) ++ if (wait_for_mdmon(st->container_devnm) == MDADM_STATUS_SUCCESS && ++ !st->update_tail) + st->update_tail = &st->updates; + } + +diff --git a/Grow.c b/Grow.c +index 87ed9214..1923c27c 100644 +--- a/Grow.c ++++ b/Grow.c +@@ -2134,7 +2134,7 @@ int Grow_reshape(char *devname, int fd, + if (!mdmon_running(st->container_devnm)) + start_mdmon(st->container_devnm); + ping_monitor(container); +- if (mdmon_running(st->container_devnm) == false) { ++ if (wait_for_mdmon(st->container_devnm) != MDADM_STATUS_SUCCESS) { + pr_err("No mdmon found. Grow cannot continue.\n"); + goto release; + } +@@ -3218,7 +3218,8 @@ static int reshape_array(char *container, int fd, char *devname, + if (!mdmon_running(container)) + start_mdmon(container); + ping_monitor(container); +- if (mdmon_running(container) && st->update_tail == NULL) ++ if (wait_for_mdmon(container) == MDADM_STATUS_SUCCESS && ++ !st->update_tail) + st->update_tail = &st->updates; + } + } +@@ -5173,7 +5174,7 @@ int Grow_continue_command(char *devname, int fd, struct context *c) + start_mdmon(container); + ping_monitor(container); + +- if (mdmon_running(container) == false) { ++ if (wait_for_mdmon(container) != MDADM_STATUS_SUCCESS) { + pr_err("No mdmon found. Grow cannot continue.\n"); + ret_val = 1; + goto Grow_continue_command_exit; +diff --git a/mdadm.h b/mdadm.h +index 1ba541fc..b71d7b32 100644 +--- a/mdadm.h ++++ b/mdadm.h +@@ -1770,6 +1770,8 @@ extern struct superswitch *version_to_superswitch(char *vers); + + extern int mdmon_running(const char *devnm); + extern int mdmon_pid(const char *devnm); ++extern mdadm_status_t wait_for_mdmon(const char *devnm); ++ + extern int check_env(char *name); + extern __u32 random32(void); + extern void random_uuid(__u8 *buf); +diff --git a/util.c b/util.c +index e2b490e1..bf79742f 100644 +--- a/util.c ++++ b/util.c +@@ -1932,6 +1932,35 @@ int mdmon_running(const char *devnm) + return 0; + } + ++/* ++ * wait_for_mdmon() - Waits for mdmon within specified time. ++ * @devnm: Device for which mdmon should start. ++ * ++ * Function waits for mdmon to start. It may need few seconds ++ * to start, we set timeout to 5, it should be sufficient. ++ * Do not wait if mdmon has been started. ++ * ++ * Return: MDADM_STATUS_SUCCESS if mdmon is running, error code otherwise. ++ */ ++mdadm_status_t wait_for_mdmon(const char *devnm) ++{ ++ const time_t mdmon_timeout = 5; ++ time_t start_time = time(0); ++ ++ if (mdmon_running(devnm)) ++ return MDADM_STATUS_SUCCESS; ++ ++ pr_info("Waiting for mdmon to start\n"); ++ while (time(0) - start_time < mdmon_timeout) { ++ sleep_for(0, MSEC_TO_NSEC(200), true); ++ if (mdmon_running(devnm)) ++ return MDADM_STATUS_SUCCESS; ++ }; ++ ++ pr_err("Timeout waiting for mdmon\n"); ++ return MDADM_STATUS_ERROR; ++} ++ + int start_mdmon(char *devnm) + { + int i; +-- +2.35.3 + diff --git a/0008-Detail-remove-duplicated-code.patch b/0008-Detail-remove-duplicated-code.patch new file mode 100644 index 0000000..b694f96 --- /dev/null +++ b/0008-Detail-remove-duplicated-code.patch @@ -0,0 +1,79 @@ +From 60c19530dd7cc6b38a75695a0a3d004bbe60d430 Mon Sep 17 00:00:00 2001 +From: Kinga Tanska +Date: Tue, 27 Feb 2024 03:36:14 +0100 +Subject: [PATCH] Detail: remove duplicated code +Git-commit: 60c19530dd7cc6b38a75695a0a3d004bbe60d430 +Patch-mainline: mdadm-4.3 +References: bsc#1226413 + +Remove duplicated code from Detail(), where MD_UUID and MD_DEVNAME +are being set. Superblock is no longer required to print system +properties. Now it tries to obtain map in two ways. + +Signed-off-by: Kinga Tanska +Signed-off-by: Mariusz Tkaczyk +Signed-off-by: Coly Li +--- + Detail.c | 33 +++++++++++++-------------------- + 1 file changed, 13 insertions(+), 20 deletions(-) + +diff --git a/Detail.c b/Detail.c +index aaa3dd6e..f23ec16f 100644 +--- a/Detail.c ++++ b/Detail.c +@@ -226,6 +226,9 @@ int Detail(char *dev, struct context *c) + str = map_num(pers, array.level); + + if (c->export) { ++ char nbuf[64]; ++ struct map_ent *mp = NULL, *map = NULL; ++ + if (array.raid_disks) { + if (str) + printf("MD_LEVEL=%s\n", str); +@@ -247,32 +250,22 @@ int Detail(char *dev, struct context *c) + array.minor_version); + } + +- if (st && st->sb && info) { +- char nbuf[64]; +- struct map_ent *mp, *map = NULL; +- +- fname_from_uuid(st, info, nbuf, ':'); +- printf("MD_UUID=%s\n", nbuf + 5); ++ if (info) + mp = map_by_uuid(&map, info->uuid); ++ if (!mp) ++ mp = map_by_devnm(&map, fd2devnm(fd)); + +- if (mp && mp->path && strncmp(mp->path, DEV_MD_DIR, DEV_MD_DIR_LEN) == 0) ++ if (mp) { ++ __fname_from_uuid(mp->uuid, 0, nbuf, ':'); ++ printf("MD_UUID=%s\n", nbuf + 5); ++ if (mp->path && strncmp(mp->path, DEV_MD_DIR, DEV_MD_DIR_LEN) == 0) + printf("MD_DEVNAME=%s\n", mp->path + DEV_MD_DIR_LEN); ++ } + ++ map_free(map); ++ if (st && st->sb) { + if (st->ss->export_detail_super) + st->ss->export_detail_super(st); +- map_free(map); +- } else { +- struct map_ent *mp, *map = NULL; +- char nbuf[64]; +- mp = map_by_devnm(&map, fd2devnm(fd)); +- if (mp) { +- __fname_from_uuid(mp->uuid, 0, nbuf, ':'); +- printf("MD_UUID=%s\n", nbuf+5); +- } +- if (mp && mp->path && strncmp(mp->path, DEV_MD_DIR, DEV_MD_DIR_LEN) == 0) +- printf("MD_DEVNAME=%s\n", mp->path + DEV_MD_DIR_LEN); +- +- map_free(map); + } + if (!c->no_devices && sra) { + struct mdinfo *mdi; +-- +2.46.0 + diff --git a/0009-mdadm-Fix-native-detail-export.patch b/0009-mdadm-Fix-native-detail-export.patch new file mode 100644 index 0000000..63933de --- /dev/null +++ b/0009-mdadm-Fix-native-detail-export.patch @@ -0,0 +1,251 @@ +From ba65d917d121dfb9876053e6f62dbd4ebf2e028c Mon Sep 17 00:00:00 2001 +From: Mariusz Tkaczyk +Date: Mon, 18 Mar 2024 16:19:30 +0100 +Subject: [PATCH] mdadm: Fix native --detail --export +Git-commit: ba65d917d121dfb9876053e6f62dbd4ebf2e028c +Patch-mainline: mdadm-4.3 +References: bsc#1226413 + +Mentioned commit (see Fixes) causes that UUID is not swapped as expected +for native superblock. Fix this problem. + +For detail, we should avoid superblock calls, we can have information +about supertype from map, use that. + +Simplify fname_from_uuid() by removing dependencies to metadata +handler, it is not needed. Decision is taken at compile time, expect +super1 but this function is not used by super1. Add warning about that. +Remove separator, it is always ':'. + +Fixes: 60c19530dd7c ("Detail: remove duplicated code") +Signed-off-by: Mariusz Tkaczyk +Signed-off-by: Coly Li +--- + Detail.c | 26 +++++++++++++++++++++++++- + mdadm.h | 3 +-- + super-ddf.c | 10 +++++----- + super-intel.c | 16 ++++++++-------- + util.c | 24 +++++++++++++----------- + 5 files changed, 52 insertions(+), 27 deletions(-) + +diff --git a/Detail.c b/Detail.c +index f23ec16f..55a086d3 100644 +--- a/Detail.c ++++ b/Detail.c +@@ -49,6 +49,30 @@ static int add_device(const char *dev, char ***p_devices, + return n_devices + 1; + } + ++/** ++ * detail_fname_from_uuid() - generate uuid string with special super1 handling. ++ * @mp: map entry to parse. ++ * @buf: buf to write. ++ * ++ * Hack to workaround an issue with super1 superblocks. It swapuuid set in order for assembly ++ * to 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. ++ * ++ * Always convert uuid if host is big endian. ++ */ ++char *detail_fname_from_uuid(struct map_ent *mp, char *buf) ++{ ++#if __BYTE_ORDER == BIG_ENDIAN ++ bool swap = true; ++#else ++ bool swap = false; ++#endif ++ if (strncmp(mp->metadata, "1.", 2) == 0) ++ swap = true; ++ ++ return __fname_from_uuid(mp->uuid, swap, buf, ':'); ++} ++ + int Detail(char *dev, struct context *c) + { + /* +@@ -256,7 +280,7 @@ int Detail(char *dev, struct context *c) + mp = map_by_devnm(&map, fd2devnm(fd)); + + if (mp) { +- __fname_from_uuid(mp->uuid, 0, nbuf, ':'); ++ detail_fname_from_uuid(mp, nbuf); + printf("MD_UUID=%s\n", nbuf + 5); + if (mp->path && strncmp(mp->path, DEV_MD_DIR, DEV_MD_DIR_LEN) == 0) + printf("MD_DEVNAME=%s\n", mp->path + DEV_MD_DIR_LEN); +diff --git a/mdadm.h b/mdadm.h +index 3fedca48..a363708a 100644 +--- a/mdadm.h ++++ b/mdadm.h +@@ -1696,8 +1696,7 @@ extern const int uuid_zero[4]; + extern int same_uuid(int a[4], int b[4], int swapuuid); + extern void copy_uuid(void *a, int b[4], int swapuuid); + extern char *__fname_from_uuid(int id[4], int swap, char *buf, char sep); +-extern char *fname_from_uuid(struct supertype *st, +- struct mdinfo *info, char *buf, char sep); ++extern char *fname_from_uuid(struct mdinfo *info, char *buf); + extern unsigned long calc_csum(void *super, int bytes); + extern int enough(int level, int raid_disks, int layout, int clean, + char *avail); +diff --git a/super-ddf.c b/super-ddf.c +index 94ac5ff3..21426c75 100644 +--- a/super-ddf.c ++++ b/super-ddf.c +@@ -1617,7 +1617,7 @@ static void brief_examine_super_ddf(struct supertype *st, int verbose) + struct mdinfo info; + char nbuf[64]; + getinfo_super_ddf(st, &info, NULL); +- fname_from_uuid(st, &info, nbuf, ':'); ++ fname_from_uuid(&info, nbuf); + + printf("ARRAY metadata=ddf UUID=%s\n", nbuf + 5); + } +@@ -1632,7 +1632,7 @@ static void brief_examine_subarrays_ddf(struct supertype *st, int verbose) + unsigned int i; + char nbuf[64]; + getinfo_super_ddf(st, &info, NULL); +- fname_from_uuid(st, &info, nbuf, ':'); ++ fname_from_uuid(&info, nbuf); + + for (i = 0; i < be16_to_cpu(ddf->virt->max_vdes); i++) { + struct virtual_entry *ve = &ddf->virt->entries[i]; +@@ -1645,7 +1645,7 @@ static void brief_examine_subarrays_ddf(struct supertype *st, int verbose) + ddf->currentconf =&vcl; + vcl.vcnum = i; + uuid_from_super_ddf(st, info.uuid); +- fname_from_uuid(st, &info, nbuf1, ':'); ++ fname_from_uuid(&info, nbuf1); + _ddf_array_name(namebuf, ddf, i); + printf("ARRAY%s%s container=%s member=%d UUID=%s\n", + namebuf[0] == '\0' ? "" : " " DEV_MD_DIR, namebuf, +@@ -1658,7 +1658,7 @@ static void export_examine_super_ddf(struct supertype *st) + struct mdinfo info; + char nbuf[64]; + getinfo_super_ddf(st, &info, NULL); +- fname_from_uuid(st, &info, nbuf, ':'); ++ fname_from_uuid(&info, nbuf); + printf("MD_METADATA=ddf\n"); + printf("MD_LEVEL=container\n"); + printf("MD_UUID=%s\n", nbuf+5); +@@ -1798,7 +1798,7 @@ static void brief_detail_super_ddf(struct supertype *st, char *subarray) + return; + else + uuid_of_ddf_subarray(ddf, vcnum, info.uuid); +- fname_from_uuid(st, &info, nbuf,':'); ++ fname_from_uuid(&info, nbuf); + printf(" UUID=%s", nbuf + 5); + } + +diff --git a/super-intel.c b/super-intel.c +index e1754f29..ff2590fe 100644 +--- a/super-intel.c ++++ b/super-intel.c +@@ -2217,7 +2217,7 @@ static void examine_super_imsm(struct supertype *st, char *homehost) + else + printf("not supported\n"); + getinfo_super_imsm(st, &info, NULL); +- fname_from_uuid(st, &info, nbuf, ':'); ++ fname_from_uuid(&info, nbuf); + printf(" UUID : %s\n", nbuf + 5); + sum = __le32_to_cpu(mpb->check_sum); + printf(" Checksum : %08x %s\n", sum, +@@ -2242,7 +2242,7 @@ static void examine_super_imsm(struct supertype *st, char *homehost) + + super->current_vol = i; + getinfo_super_imsm(st, &info, NULL); +- fname_from_uuid(st, &info, nbuf, ':'); ++ fname_from_uuid(&info, nbuf); + print_imsm_dev(super, dev, nbuf + 5, super->disks->index); + } + for (i = 0; i < mpb->num_disks; i++) { +@@ -2267,7 +2267,7 @@ static void brief_examine_super_imsm(struct supertype *st, int verbose) + char nbuf[64]; + + getinfo_super_imsm(st, &info, NULL); +- fname_from_uuid(st, &info, nbuf, ':'); ++ fname_from_uuid(&info, nbuf); + printf("ARRAY metadata=imsm UUID=%s\n", nbuf + 5); + } + +@@ -2284,13 +2284,13 @@ static void brief_examine_subarrays_imsm(struct supertype *st, int verbose) + return; + + getinfo_super_imsm(st, &info, NULL); +- fname_from_uuid(st, &info, nbuf, ':'); ++ fname_from_uuid(&info, nbuf); + for (i = 0; i < super->anchor->num_raid_devs; i++) { + struct imsm_dev *dev = get_imsm_dev(super, i); + + super->current_vol = i; + getinfo_super_imsm(st, &info, NULL); +- fname_from_uuid(st, &info, nbuf1, ':'); ++ fname_from_uuid(&info, nbuf1); + printf("ARRAY " DEV_MD_DIR "%.16s container=%s member=%d UUID=%s\n", + dev->volume, nbuf + 5, i, nbuf1 + 5); + } +@@ -2304,7 +2304,7 @@ static void export_examine_super_imsm(struct supertype *st) + char nbuf[64]; + + getinfo_super_imsm(st, &info, NULL); +- fname_from_uuid(st, &info, nbuf, ':'); ++ fname_from_uuid(&info, nbuf); + printf("MD_METADATA=imsm\n"); + printf("MD_LEVEL=container\n"); + printf("MD_UUID=%s\n", nbuf+5); +@@ -2324,7 +2324,7 @@ static void detail_super_imsm(struct supertype *st, char *homehost, + super->current_vol = strtoul(subarray, NULL, 10); + + getinfo_super_imsm(st, &info, NULL); +- fname_from_uuid(st, &info, nbuf, ':'); ++ fname_from_uuid(&info, nbuf); + printf("\n UUID : %s\n", nbuf + 5); + + super->current_vol = temp_vol; +@@ -2341,7 +2341,7 @@ static void brief_detail_super_imsm(struct supertype *st, char *subarray) + super->current_vol = strtoul(subarray, NULL, 10); + + getinfo_super_imsm(st, &info, NULL); +- fname_from_uuid(st, &info, nbuf, ':'); ++ fname_from_uuid(&info, nbuf); + printf(" UUID=%s", nbuf + 5); + + super->current_vol = temp_vol; +diff --git a/util.c b/util.c +index 49a9c6e2..03336d6f 100644 +--- a/util.c ++++ b/util.c +@@ -589,19 +589,21 @@ char *__fname_from_uuid(int id[4], int swap, char *buf, char sep) + + } + +-char *fname_from_uuid(struct supertype *st, struct mdinfo *info, +- char *buf, char sep) +-{ +- // dirty hack to work around an issue with super1 superblocks... +- // super1 superblocks need swapuuid set in order for assembly to +- // 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 ++/** ++ * fname_from_uuid() - generate uuid string. Should not be used with super1. ++ * @info: info with uuid ++ * @buf: buf to fill. ++ * ++ * This routine should not be used with super1. See detail_fname_from_uuid() for details. It does ++ * not use superswitch swapuuid as it should be 0 but it has to do UUID conversion if host is big ++ * endian- left for backward compatibility. ++ */ ++char *fname_from_uuid(struct mdinfo *info, char *buf) ++{ + #if __BYTE_ORDER == BIG_ENDIAN +- return __fname_from_uuid(info->uuid, 1, buf, sep); ++ return __fname_from_uuid(info->uuid, true, buf, ':'); + #else +- return __fname_from_uuid(info->uuid, (st->ss == &super1) ? 1 : +- st->ss->swapuuid, buf, sep); ++ return __fname_from_uuid(info->uuid, false, buf, ':'); + #endif + } + +-- +2.46.0 + diff --git a/1001-display-timeout-status.patch b/1001-display-timeout-status.patch new file mode 100644 index 0000000..43426ec --- /dev/null +++ b/1001-display-timeout-status.patch @@ -0,0 +1,30 @@ +--- + Detail.c | 1 + + md_p.h | 1 + + 2 files changed, 2 insertions(+) + +Index: mdadm-4.0/Detail.c +=================================================================== +--- mdadm-4.0.orig/Detail.c ++++ mdadm-4.0/Detail.c +@@ -693,6 +693,8 @@ This is pretty boring + disk.raid_disk >= 0) + failed++; + } ++ if (disk.state & (1< +Subject: OnCalendar format fix of mdcheck_start.timer +Patch-mainline: in-house patch at this moment, will post to upstream in future +References: bsc#1173137 + +This patch includes the fix of the OnCalendar format, changing the format of +mdcheck_start.timer [Timer] section, +from OnCalendar=Sun *-*-1..7 1:00:00 +to OnCalendar=Sun *-*-* 1:00:00 + +Signed-off-by: Ali Abdallah +Acked-by: Coly Li +Index: mdadm-4.1/systemd/mdcheck_start.timer +=================================================================== +--- mdadm-4.1.orig/systemd/mdcheck_start.timer ++++ mdadm-4.1/systemd/mdcheck_start.timer +@@ -9,7 +9,7 @@ + Description=MD array scrubbing + + [Timer] +-OnCalendar=Sun *-*-1..7 1:00:00 ++OnCalendar=Sun *-*-* 1:00:00 + + [Install] + WantedBy= mdmonitor.service diff --git a/1003-mdadm-treat-the-Dell-softraid-array-as-local-array.patch b/1003-mdadm-treat-the-Dell-softraid-array-as-local-array.patch new file mode 100644 index 0000000..54e0295 --- /dev/null +++ b/1003-mdadm-treat-the-Dell-softraid-array-as-local-array.patch @@ -0,0 +1,59 @@ +From 2361620a9d78a4e26ec438b5cc21fe796d411497 Mon Sep 17 00:00:00 2001 +From: Coly Li +Date: Mon, 31 Aug 2020 00:02:10 +0800 +Subject: [PATCH] mdadm: treat the Dell softraid array as local array +Patch-mainline: N/A, in-house usage only as a workaround to Dell's softraid bug +References: bsc#1175004 + +Dell softraid FW uses homehost in md raid superblock to store +its virtual disk name e.g. "VirtualDisk01". The improper usage +of md raid super block meta data from Dell softraid S150 utility +makes mdadm takes such md raid (Dell softraid Virtual Disk) as +foreign array and won't automatically assemble this array by +default. Here if an array's homehost name starts with "VirtualDisk" +then we take it as a Dell software raid and bypass the set_name +checking. This workaround makes current Dell software raid array +can be treated as local array and start automatically. + +This workaround patch will be withdrawn after Dell softraid FW +fixes the improper usage problem on md raid superblock. + +Signed-off-by: Coly Li +--- + super1.c | 19 ++++++++++++++++++- + 1 file changed, 18 insertions(+), 1 deletion(-) + +diff --git a/super1.c b/super1.c +index 7664883..d15067a 100644 +--- a/super1.c ++++ b/super1.c +@@ -954,8 +954,25 @@ static int examine_badblocks_super1(struct supertype *st, int fd, char *devname) + static int match_home1(struct supertype *st, char *homehost) + { + struct mdp_superblock_1 *sb = st->sb; +- int l = homehost ? strlen(homehost) : 0; ++ char *dell_softraid_header = "VirtualDisk"; ++ int l = strlen(dell_softraid_header); ++ ++ /* ++ * Dell softraid FW uses homehost in md raid superblock to store ++ * its virtual disk name e.g. "VirtualDisk01". The improper usage ++ * of md raid super block meta data from Dell softraid S150 utility ++ * makes mdadm takes such md raid (Dell softraid Virtual Disk) as ++ * foreign array and won't automatically assemble this array by ++ * default. Here if an array's homehost name starts with "VirtualDisk" ++ * then we take it as a Dell software raid and bypass the set_name ++ * checking. This workaround makes current Dell software raid array ++ * can be treated as local array and start automatically. ++ */ ++ if (strncmp(sb->set_name, dell_softraid_header, l) == 0) ++ return 1; + ++ /* Normal cases handleing */ ++ l = homehost ? strlen(homehost) : 0; + return (l > 0 && l < 32 && sb->set_name[l] == ':' && + strncmp(sb->set_name, homehost, l) == 0); + } +-- +2.26.2 + diff --git a/1004-call-mdadm_env.sh-from-usr-libexec-mdadm.patch b/1004-call-mdadm_env.sh-from-usr-libexec-mdadm.patch new file mode 100644 index 0000000..c8af6c4 --- /dev/null +++ b/1004-call-mdadm_env.sh-from-usr-libexec-mdadm.patch @@ -0,0 +1,61 @@ +From 6e79d4bd229e5db4e435917daf4c57cd79db9265 Mon Sep 17 00:00:00 2001 +From: colyli +Date: Wed, 17 Oct 2018 11:08:39 +0800 +Subject: [PATCH] Call mdadm_env.sh from /usr/libexec/mdadm +Patch-mainline: N/A, SUSE only patch +References: bsc#1111960, bsc#1202090 + +Current Makefile installs mdadm_env.sh to /usr/libexec/mdadm but the +systemd service files call it from /usr/lib/mdadm. This patch changes +the calling path in systemd service files to /usr/libexec/mdadm to +make things working. + +Signed-off-by: Coly Li +--- + Makefile | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +Index: mdadm-4.3/systemd/mdcheck_continue.service +=================================================================== +--- mdadm-4.3.orig/systemd/mdcheck_continue.service ++++ mdadm-4.3/systemd/mdcheck_continue.service +@@ -13,4 +13,6 @@ Documentation=man:mdadm(8) + [Service] + Type=oneshot + Environment="MDADM_CHECK_DURATION=6 hours" ++EnvironmentFile=-/run/sysconfig/mdadm ++ExecStartPre=-/usr/libexec/mdadm/mdadm_env.sh + ExecStart=/usr/share/mdadm/mdcheck --continue --duration ${MDADM_CHECK_DURATION} +Index: mdadm-4.3/systemd/mdcheck_start.service +=================================================================== +--- mdadm-4.3.orig/systemd/mdcheck_start.service ++++ mdadm-4.3/systemd/mdcheck_start.service +@@ -13,4 +13,6 @@ Documentation=man:mdadm(8) + [Service] + Type=oneshot + Environment="MDADM_CHECK_DURATION=6 hours" ++EnvironmentFile=-/run/sysconfig/mdadm ++ExecStartPre=-/usr/libexec/mdadm/mdadm_env.sh + ExecStart=/usr/share/mdadm/mdcheck --duration ${MDADM_CHECK_DURATION} +Index: mdadm-4.3/systemd/mdmonitor-oneshot.service +=================================================================== +--- mdadm-4.3.orig/systemd/mdmonitor-oneshot.service ++++ mdadm-4.3/systemd/mdmonitor-oneshot.service +@@ -12,5 +12,5 @@ Documentation=man:mdadm(8) + [Service] + Environment=MDADM_MONITOR_ARGS=--scan + EnvironmentFile=-/run/sysconfig/mdadm +-ExecStartPre=-/usr/lib/mdadm/mdadm_env.sh ++ExecStartPre=-/usr/libexec/mdadm/mdadm_env.sh + ExecStart=BINDIR/mdadm --monitor --oneshot $MDADM_MONITOR_ARGS +Index: mdadm-4.3/systemd/mdmonitor.service +=================================================================== +--- mdadm-4.3.orig/systemd/mdmonitor.service ++++ mdadm-4.3/systemd/mdmonitor.service +@@ -13,5 +13,5 @@ Documentation=man:mdadm(8) + [Service] + Environment= MDADM_MONITOR_ARGS=--scan + EnvironmentFile=-/run/sysconfig/mdadm +-ExecStartPre=-/usr/lib/mdadm/mdadm_env.sh ++ExecStartPre=-/usr/libexec/mdadm/mdadm_env.sh + ExecStart=BINDIR/mdadm --monitor $MDADM_MONITOR_ARGS diff --git a/1005-mdadm-enable-Intel-Alderlake-RSTe-configuration.patch b/1005-mdadm-enable-Intel-Alderlake-RSTe-configuration.patch new file mode 100644 index 0000000..d312c3b --- /dev/null +++ b/1005-mdadm-enable-Intel-Alderlake-RSTe-configuration.patch @@ -0,0 +1,58 @@ +From 449c8b62164880ab132ad6eec86a8d53f793af69 Mon Sep 17 00:00:00 2001 +From: Hannes Reinecke +Date: Tue, 19 Jul 2022 13:18:23 +0800 +Subject: [PATCH 19/23] mdadm: enable Intel Alderlake RSTe configuration +Patch-mainline: N/A, SUSE only patch +References: bsc#1201297 + +Alderlake has a slightly different RST configuration; the UEFI +variable is name 'RstVmdV', and the AHCI controller shows up as +a child device of the VMD bridge, but continues to use the 'AHCI HBA' +PCI class (and not the RAID class as RSTe would normally do). + +Signed-off-by: Hannes Reinecke +Acked-by: Coly Li +--- + platform-intel.c | 8 ++++++-- + 1 file changed, 6 insertions(+), 2 deletions(-) + +Index: mdadm-4.2/platform-intel.c +=================================================================== +--- mdadm-4.2.orig/platform-intel.c ++++ mdadm-4.2/platform-intel.c +@@ -512,6 +512,7 @@ static const struct imsm_orom *find_imsm + #define AHCI_PROP "RstSataV" + #define AHCI_SSATA_PROP "RstsSatV" + #define AHCI_TSATA_PROP "RsttSatV" ++#define AHCI_RST_PROP "RstVmdV" + #define VROC_VMD_PROP "RstUefiV" + #define RST_VMD_PROP "RstVmdV" + +@@ -519,6 +520,7 @@ static const struct imsm_orom *find_imsm + EFI_GUID(0x193dfefa, 0xa445, 0x4302, 0x99, 0xd8, 0xef, 0x3a, 0xad, 0x1a, 0x04, 0xc6) + + #define PCI_CLASS_RAID_CNTRL 0x010400 ++#define PCI_CLASS_SATA_HBA 0x010601 + + static int read_efi_var(void *buffer, ssize_t buf_size, + const char *variable_name, struct efi_guid guid) +@@ -605,7 +607,8 @@ const struct imsm_orom *find_imsm_efi(st + struct imsm_orom orom; + struct orom_entry *ret; + static const char * const sata_efivars[] = {AHCI_PROP, AHCI_SSATA_PROP, +- AHCI_TSATA_PROP}; ++ AHCI_TSATA_PROP, ++ AHCI_RST_PROP}; + static const char * const vmd_efivars[] = {VROC_VMD_PROP, RST_VMD_PROP}; + unsigned long i; + +@@ -624,7 +627,8 @@ const struct imsm_orom *find_imsm_efi(st + + return NULL; + case SYS_DEV_SATA: +- if (hba->class != PCI_CLASS_RAID_CNTRL) ++ if (hba->class != PCI_CLASS_RAID_CNTRL && ++ hba->class != PCI_CLASS_SATA_HBA) + return NULL; + + for (i = 0; i < ARRAY_SIZE(sata_efivars); i++) { diff --git a/Software-RAID.HOWTO.tar.bz2 b/Software-RAID.HOWTO.tar.bz2 new file mode 100644 index 0000000..8b185c0 --- /dev/null +++ b/Software-RAID.HOWTO.tar.bz2 @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:fa66bf2cadc6f85dfde50a2a31d7547483342fe74d88801129d383bf98796352 +size 29644 diff --git a/mdadm-4.3.tar.xz b/mdadm-4.3.tar.xz new file mode 100644 index 0000000..791ed43 --- /dev/null +++ b/mdadm-4.3.tar.xz @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:7ed64ea459e464420d3489d3f1875d3083f72e281ad4cd2f9c12a9ea44a5b606 +size 467024 diff --git a/mdadm.changes b/mdadm.changes new file mode 100644 index 0000000..8519bc8 --- /dev/null +++ b/mdadm.changes @@ -0,0 +1,3227 @@ +------------------------------------------------------------------- +Wed Sep 18 15:43:37 UTC 2024 - Coly Li + +- Detail: remove duplicated code (bsc#1226413) + 0008-Detail-remove-duplicated-code.patch +- mdadm: Fix native --detail --export (bsc#1226413) + 0009-mdadm-Fix-native-detail-export.patch + +------------------------------------------------------------------- +Sat Jul 6 15:43:04 UTC 2024 - Coly Li + +- util.c: change devnm to const in mdmon functions (bsc#1225307) + 0006-util.c-change-devnm-to-const-in-mdmon-functions.patch +- Wait for mdmon when it is stared via systemd (bsc#1225307) + 0007-Wait-for-mdmon-when-it-is-stared-via-systemd.patch + +------------------------------------------------------------------- +Fri Feb 23 10:46:16 UTC 2024 - pgajdos@suse.com + +- Use %autosetup macro. Allows to eliminate the usage of deprecated + %patchN + +------------------------------------------------------------------- +Fri Feb 23 10:05:39 UTC 2024 - Coly Li + +- Update mdadm-4.3 to latest status (jsc#PED-7542) + - Remove hardcoded checkpoint interval checking + 0001-Remove-hardcoded-checkpoint-interval-checking.patch + - monitor: refactor checkpoint update + 0002-monitor-refactor-checkpoint-update.patch + - Super-intel: Fix first checkpoint restart + 0003-Super-intel-Fix-first-checkpoint-restart.patch + - Grow: Move update_tail assign to Grow_reshape() + 0004-Grow-Move-update_tail-assign-to-Grow_reshape.patch + - Add understanding output section in man + 0005-Add-understanding-output-section-in-man.patch + +------------------------------------------------------------------- +Fri Feb 23 01:03:17 UTC 2024 - Coly Li + +- Upgrade to mdadm-4.3 (jsc#PED-7542). Beside previous already back + ported patches, mdadm-4.3 has the following extra changes since + last update upto commit 582945c2d3bb, + - Fix null pointer for incremental in mdadm. + - Super1: fix truncation check for journal device. + - Fix some cases eyesore formatting. + - Bump minimum kernel version to 2.6.32. + - Remove the config files in mdcheck_start|continue service. + - Define DEV_MD_DIR, DEV_NUM_PREF, is_devname_ignore(), + ident_set_devname(). + - Enable RAID for SATA under VMD. + - Imsm: Fix possible segfault in check_no_platform() + - Imsm refactor on imsm_get_free_size(), merge_extents(). + - Imsm: return free space after volume for expand. + - Imsm: fix free space calculations. + - Add secure gethostname() wrapper. + - mdadm: Stop mdcheck_continue timer when mdcheck_start service can + finish check. + - Fix memory leak in files Assemble.c, Kill.c, Manage.c, mdadm.c. + - Fix unsafe string functions. + - platform-intel: limit guid length. + - Imsm: Add reading vmd register for finding imsm capability. + - Add compiler defenses flags. + - Assemble: fix redundant memory free. + - More regression test cases added into tests. + - Mdadm: set ident.devname if applicable. + - Mdadm: refactor ident->name handling. + - Mdadm: Follow POSIX Portable Character Set. + - Incremental: remove obsoleted calls to udisks. + - Fix race of "mdadm --add" and "mdadm --incremental". + - mdadm/ddf: Abort when raid disk is smaller in getinfo_super_ddf. + - mdadm/super1: Add MD_FEATURE_RAID0_LAYOUT if kernel>=5.4. + - Fix assembling RAID volume by using incremental. + - Mdmonitor: Improve udev event handling. + - Udev: Move udev_block() and udev_unblock() into udev.c. + - Manage: adjust checking subarray state in update_subarray. + - Super1: remove support for name= in config. + - Mdadm: fix update=resync regression. +- Rebase to keep consistent behavior for current code base. + - 1004-call-mdadm_env.sh-from-usr-libexec-mdadm.patch +- The following patches are moved from package because they are all + included in mdadm-4.3, + - 0001-Unify-error-message.patch + - 0002-mdadm-Fix-double-free.patch + - 0003-Grow_reshape-Add-r0-grow-size-error-message-and-upda.patch + - 0004-udev-adapt-rules-to-systemd-v247.patch + - 0005-Replace-error-prone-signal-with-sigaction.patch + - 0006-mdadm-Respect-config-file-location-in-man.patch + - 0007-mdadm-Update-ReadMe.patch + - 0008-mdadm-Update-config-man-regarding-default-files-and-.patch + - 0009-mdadm-Update-config-manual.patch + - 0010-Create-Build-use-default_layout.patch + - 0011-mdadm-add-map_num_s.patch + - 0012-mdmon-Stop-parsing-duplicate-options.patch + - 0013-Grow-block-n-on-external-volumes.patch + - 0014-Incremental-Fix-possible-memory-and-resource-leaks.patch + - 0015-Mdmonitor-Fix-segfault.patch + - 0016-Mdmonitor-Improve-logging-method.patch + - 0017-Fix-possible-NULL-ptr-dereferences-and-memory-leaks.patch + - 0018-imsm-Remove-possibility-for-get_imsm_dev-to-return-N.patch + - 0019-Revert-mdadm-fix-coredump-of-mdadm-monitor-r.patch + - 0020-util-replace-ioctl-use-with-function.patch + - 0021-mdadm-super1-restore-commit-45a87c2f31335-to-fix-clu.patch + - 0022-imsm-introduce-get_disk_slot_in_dev.patch + - 0023-imsm-use-same-slot-across-container.patch + - 0024-imsm-block-changing-slots-during-creation.patch + - 0025-mdadm-block-update-ppl-for-non-raid456-levels.patch + - 0026-mdadm-Fix-array-size-mismatch-after-grow.patch + - 0027-mdadm-Remove-dead-code-in-imsm_fix_size_mismatch.patch + - 0028-Monitor-use-devname-as-char-array-instead-of-pointer.patch + - 0029-Monitor-use-snprintf-to-fill-device-name.patch + - 0030-Makefile-Don-t-build-static-build-with-everything-an.patch + - 0031-DDF-Cleanup-validate_geometry_ddf_container.patch + - 0032-DDF-Fix-NULL-pointer-dereference-in-validate_geometr.patch + - 0033-mdadm-Grow-Fix-use-after-close-bug-by-closing-after-.patch + - 0034-monitor-Avoid-segfault-when-calling-NULL-get_bad_blo.patch + - 0035-mdadm-Fix-mdadm-r-remove-option-regression.patch + - 0036-mdadm-Fix-optional-write-behind-parameter.patch + - 0037-mdadm-Replace-obsolete-usleep-with-nanosleep.patch + - 0038-mdadm-remove-symlink-option.patch + - 0039-mdadm-move-data_offset-to-struct-shape.patch + - 0040-mdadm-Don-t-open-md-device-for-CREATE-and-ASSEMBLE.patch + - 0041-Grow-Split-Grow_reshape-into-helper-function.patch + - 0042-Assemble-check-if-device-is-container-before-schedul.patch + - 0043-super1-report-truncated-device.patch + - 0044-mdadm-Correct-typos-punctuation-and-grammar-in-man.patch + - 0046-Monitor-Fix-statelist-memory-leaks.patch + - 0047-mdadm-added-support-for-Intel-Alderlake-RST-on-VMD-p.patch + - 0048-mdadm-Add-Documentation-entries-to-systemd-services.patch + - 0049-ReadMe-fix-command-line-help.patch + - 0050-mdadm-replace-container-level-checking-with-inline.patch + - 0051-Mdmonitor-Omit-non-md-devices.patch + - 0052-mdmon-fix-segfault.patch + - 0053-util-remove-obsolete-code-from-get_md_name.patch + - 0054-mdmon-don-t-test-both-all-and-container_name.patch + - 0055-mdmon-change-systemd-unit-file-to-use-foreground.patch + - 0056-mdmon-Remove-need-for-KillMode-none.patch + - 0057-mdmon-Improve-switchroot-interactions.patch + - 0058-mdopen-always-try-create_named_array.patch + - 0059-Improvements-for-IMSM_NO_PLATFORM-testing.patch + - 0060-Grow-fix-possible-memory-leak.patch + - 0061-Grow-fix-can-t-change-bitmap-type-from-none-to-clustered.patch + - 0062-Manage-Block-unsafe-member-failing.patch + - 0063-Mdmonitor-Split-alert-into-separate-functions.patch + - 0064-Monitor-block-if-monitor-modes-are-combined.patch + - 0065-Update-mdadm-Monitor-manual.patch + - 0066-mdadm-create-ident_init.patch + - 0067-mdadm-Add-option-validation-for-update-subarray.patch + - 0068-Fix-update-subarray-on-active-volume.patch + - 0069-Add-code-specific-update-options-to-enum.patch + - 0070-super-ddf-Remove-update_super_ddf.patch + - 0071-super0-refactor-the-code-for-enum.patch + - 0072-super1-refactor-the-code-for-enum.patch + - 0073-super-intel-refactor-the-code-for-enum.patch + - 0074-Change-update-to-enum-in-update_super-and-update_sub.patch + - 0075-Manage-Incremental-code-refactor-string-to-enum.patch + - 0076-Change-char-to-enum-in-context-update-refactor-code.patch + - 0077-mdadm-udev-Don-t-handle-change-event-on-raw-devices.patch + - 0078-Manage-do-not-check-array-state-when-drive-is-remove.patch + - 0079-incremental-manage-do-not-verify-if-remove-is-safe.patch + - 0080-super-intel-make-freesize-not-required-for-chunk-siz.patch + - 0081-manage-move-comment-with-function-description.patch + - 0082-Fix-NULL-dereference-in-super_by_fd.patch + - 0083-Mdmonitor-Make-alert_info-global.patch + - 0084-Mdmonitor-Pass-events-to-alert-using-enums-instead-o.patch + - 0085-Mdmonitor-Add-helper-functions.patch + - 0086-Add-helpers-to-determine-whether-directories-or-file.patch + - 0087-Mdmonitor-Refactor-write_autorebuild_pid.patch + - 0088-Mdmonitor-Refactor-check_one_sharer-for-better-error.patch + - 0089-util.c-reorder-code-lines-in-parse_layout_faulty.patch + - 0090-util.c-fix-memleak-in-parse_layout_faulty.patch + - 0091-Detail.c-fix-memleak-in-Detail.patch + - 0092-isuper-intel.c-fix-double-free-in-load_imsm_mpb.patch + - 0093-super-intel.c-fix-memleak-in-find_disk_attached_hba.patch + - 0094-super-ddf.c-fix-memleak-in-get_vd_num_of_subarray.patch + - 0095-Create-goto-abort_locked-instead-of-return-1-in-erro.patch + - 0096-Create-remove-safe_mode_delay-local-variable.patch + - 0097-Create-Factor-out-add_disks-helpers.patch + - 0098-mdadm-Introduce-pr_info.patch + - 0099-mdadm-Add-write-zeros-option-for-Create.patch + - 0100-manpage-Add-write-zeroes-option-to-manpage.patch + - 0101-Define-alignof-using-_Alignof-when-using-C11-or-newe.patch + - 0102-Use-existence-of-etc-initrd-release-to-detect-initrd.patch + - 0103-Create-Fix-checking-for-container-in-update_metadata.patch + +------------------------------------------------------------------- +Mon Jan 8 05:32:25 UTC 2024 - Coly Li + +- Update mdadm to latest upstream state upto commit + 582945c2d3bb. (jsc#PED-7542) + 1) The testing changes are not included here. + 2) Code clean up, and more helper routines added for Manage.c, + Monitor.c, mdadm.c, ReadMe.c, super-intel.c, super0.c, super1.c, + Create.c, Incremental.c and so on. + 3) Man page update for mdadm.8.in. + 4) Several memory leak and double free fixes. + 5) Check /etc/initrd-release for whether systemd running on an initrd. + - Manage: Block unsafe member failing + 0062-Manage-Block-unsafe-member-failing.patch + - Mdmonitor: Split alert() into separate functions + 0063-Mdmonitor-Split-alert-into-separate-functions.patch + - Monitor: block if monitor modes are combined. + 0064-Monitor-block-if-monitor-modes-are-combined.patch + - Update mdadm Monitor manual. + 0065-Update-mdadm-Monitor-manual.patch + - mdadm: create ident_init() + 0066-mdadm-create-ident_init.patch + - mdadm: Add option validation for --update-subarray + 0067-mdadm-Add-option-validation-for-update-subarray.patch + - Fix --update-subarray on active volume + 0068-Fix-update-subarray-on-active-volume.patch + - Add code specific update options to enum. + 0069-Add-code-specific-update-options-to-enum.patch + - super-ddf: Remove update_super_ddf. + 0070-super-ddf-Remove-update_super_ddf.patch + - super0: refactor the code for enum + 0071-super0-refactor-the-code-for-enum.patch + - super1: refactor the code for enum + 0072-super1-refactor-the-code-for-enum.patch + - super-intel: refactor the code for enum + 0073-super-intel-refactor-the-code-for-enum.patch + - Change update to enum in update_super and update_subarray + 0074-Change-update-to-enum-in-update_super-and-update_sub.patch + - Manage&Incremental: code refactor, string to enum + 0075-Manage-Incremental-code-refactor-string-to-enum.patch + - Change char* to enum in context->update & refactor code + 0076-Change-char-to-enum-in-context-update-refactor-code.patch + - mdadm/udev: Don't handle change event on raw devices + 0077-mdadm-udev-Don-t-handle-change-event-on-raw-devices.patch + - Manage: do not check array state when drive is removed + 0078-Manage-do-not-check-array-state-when-drive-is-remove.patch + - incremental, manage: do not verify if remove is safe + 0079-incremental-manage-do-not-verify-if-remove-is-safe.patch + - super-intel: make freesize not required for chunk size + 0080-super-intel-make-freesize-not-required-for-chunk-siz.patch + - manage: move comment with function description + 0081-manage-move-comment-with-function-description.patch + - Fix NULL dereference in super_by_fd + 0082-Fix-NULL-dereference-in-super_by_fd.patch + - Mdmonitor: Make alert_info global + 0083-Mdmonitor-Make-alert_info-global.patch + - Mdmonitor: Pass events to alert() using enums instead of + 0084-Mdmonitor-Pass-events-to-alert-using-enums-instead-o.patch + - Mdmonitor: Add helper functions + 0085-Mdmonitor-Add-helper-functions.patch + - Add helpers to determine whether directories or files are + 0086-Add-helpers-to-determine-whether-directories-or-file.patch + - Mdmonitor: Refactor write_autorebuild_pid() + 0087-Mdmonitor-Refactor-write_autorebuild_pid.patch + - Mdmonitor: Refactor check_one_sharer() for better error + 0088-Mdmonitor-Refactor-check_one_sharer-for-better-error.patch + - util.c: reorder code lines in parse_layout_faulty() + 0089-util.c-reorder-code-lines-in-parse_layout_faulty.patch + - util.c: fix memleak in parse_layout_faulty() + 0090-util.c-fix-memleak-in-parse_layout_faulty.patch + - Detail.c: fix memleak in Detail() + 0091-Detail.c-fix-memleak-in-Detail.patch + - isuper-intel.c: fix double free in load_imsm_mpb() + 0092-isuper-intel.c-fix-double-free-in-load_imsm_mpb.patch + - super-intel.c: fix memleak in find_disk_attached_hba() + 0093-super-intel.c-fix-memleak-in-find_disk_attached_hba.patch + - super-ddf.c: fix memleak in get_vd_num_of_subarray() + 0094-super-ddf.c-fix-memleak-in-get_vd_num_of_subarray.patch + - Create: goto abort_locked instead of return 1 in error path + 0095-Create-goto-abort_locked-instead-of-return-1-in-erro.patch + - Create: remove safe_mode_delay local variable + 0096-Create-remove-safe_mode_delay-local-variable.patch + - Create: Factor out add_disks() helpers + 0097-Create-Factor-out-add_disks-helpers.patch + - mdadm: Introduce pr_info() + 0098-mdadm-Introduce-pr_info.patch + - mdadm: Add --write-zeros option for Create + 0099-mdadm-Add-write-zeros-option-for-Create.patch + - manpage: Add --write-zeroes option to manpage + 0100-manpage-Add-write-zeroes-option-to-manpage.patch + - Define alignof using _Alignof when using C11 or newer + 0101-Define-alignof-using-_Alignof-when-using-C11-or-newe.patch + - Use existence of /etc/initrd-release to detect initrd. + 0102-Use-existence-of-etc-initrd-release-to-detect-initrd.patch + - Create: Fix checking for container in update_metadata + 0103-Create-Fix-checking-for-container-in-update_metadata.patch + +------------------------------------------------------------------- +Fri Nov 17 15:34:31 UTC 2023 - Dominique Leuenberger + +- No longer recommend smtp-daemon: this was a remainder from the + cron configuration, which was removed back in 2018. + +------------------------------------------------------------------- +Mon Jul 24 15:31:30 UTC 2023 - Ludwig Nussel + +- mdadm.spec: replace transitional %usrmerged macro with regular + version check (boo#1206798) + +------------------------------------------------------------------- +Fri May 26 02:29:42 UTC 2023 - Coly Li + +- Grow: fix possible memory leak (bsc#1208618) + 0060-Grow-fix-possible-memory-leak.patch +- Grow: fix can't change bitmap type from none to clustered + (bsc#1208618) + 0061-Grow-fix-can-t-change-bitmap-type-from-none-to-clustered.patch +- Use source code mdadm-4.2.tar.xz from kernel.org version for + checksum + - mdadm-4.2.tar.xz + +------------------------------------------------------------------- +Mon Apr 24 15:06:42 UTC 2023 - Coly Li + +- Fixes for mdmon to ensure it run at the right time in the + fight mount namespace. This fixes various problems with + IMSM raid arrays in 15-SP4 (bsc#1205493, bsc#1205830) + - mdmon: fix segfault + 0052-mdmon-fix-segfault.patch + - util: remove obsolete code from get_md_name + 0053-util-remove-obsolete-code-from-get_md_name.patch + - mdmon: don't test both 'all' and 'container_name'. + 0054-mdmon-don-t-test-both-all-and-container_name.patch + - mdmon: change systemd unit file to use --foreground + 0055-mdmon-change-systemd-unit-file-to-use-foreground.patch + - mdmon: Remove need for KillMode=none + 0056-mdmon-Remove-need-for-KillMode-none.patch + - mdmon: Improve switchroot interactions. + 0057-mdmon-Improve-switchroot-interactions.patch + - mdopen: always try create_named_array() + 0058-mdopen-always-try-create_named_array.patch + - Improvements for IMSM_NO_PLATFORM testing + 0059-Improvements-for-IMSM_NO_PLATFORM-testing.patch + +------------------------------------------------------------------- +Sat Apr 1 15:17:58 UTC 2023 - Coly Li + +- sysconfig.mdadm: Remove ServiceRestart line to mdadm since there + is not such systemd service. (bsc#1203491) + +------------------------------------------------------------------- +Mon Dec 26 05:01:33 UTC 2022 - Coly Li + +- mdadm.spec: create the following symbolic link in /sbin for + compatibility, + /sbin/mdadm -> /usr/sbin/mdadm + /sbin/mdmon -> /usr/sbin/mdmon + (jsc#PED-1009, jsc#PED-947) + +------------------------------------------------------------------- +Wed Dec 7 08:42:17 UTC 2022 - Coly Li + +- Drop the patch which is reported as regression by upstream developer + (bsc#1206139) + 0045-Manage-Block-unsafe-member-failing.patch +- Add jsc#PED-947 together with jsc#PED-1009 in mdadm.changes, they + are both the requirement to update mdadm to latest upstream state + via different requestors. + +------------------------------------------------------------------- +Thu Nov 24 06:23:28 UTC 2022 - Coly Li + +- Call mdadm_env.sh from /usr/libexec/mdadm (bsc#1111960, bsc#1202090) + 1004-call-mdadm_env.sh-from-usr-libexec-mdadm.patch +- The patch (bsc#1111960) which fixed rpm check failure is replaced + by the above patch, + 1004-Makefile-install-mdadm_env.sh-to-usr-lib-mdadm.patch. + +------------------------------------------------------------------- +Thu Nov 24 05:57:50 UTC 2022 - Coly Li + +- mdadm.spec: remove "PreReq: %{_sbindir}/mkinitrd" as it is + unnecessary now. (bsc#1202352) + +------------------------------------------------------------------- +Thu Nov 3 15:58:38 UTC 2022 - Coly Li + +- Update mdadm package to latest mdadm since mdadm-4.2 + (jsc#PED-1009, jsc#PED-947) + * Only patches directly change runtime programs included, + - Unify error message. + 0001-Unify-error-message.patch + - mdadm: Fix double free + 0002-mdadm-Fix-double-free.patch + - Grow_reshape: Add r0 grow size error message and update + 0003-Grow_reshape-Add-r0-grow-size-error-message-and-upda.patch + - udev: adapt rules to systemd v247 + 0004-udev-adapt-rules-to-systemd-v247.patch + - Replace error prone signal() with sigaction() + 0005-Replace-error-prone-signal-with-sigaction.patch + - mdadm: Respect config file location in man + 0006-mdadm-Respect-config-file-location-in-man.patch + - mdadm: Update ReadMe + 0007-mdadm-Update-ReadMe.patch + - mdadm: Update config man regarding default files and + 0008-mdadm-Update-config-man-regarding-default-files-and-.patch + - mdadm: Update config manual + 0009-mdadm-Update-config-manual.patch + - Create, Build: use default_layout() + 0010-Create-Build-use-default_layout.patch + - mdadm: add map_num_s() + 0011-mdadm-add-map_num_s.patch + - mdmon: Stop parsing duplicate options + 0012-mdmon-Stop-parsing-duplicate-options.patch + - Grow: block -n on external volumes. + 0013-Grow-block-n-on-external-volumes.patch + - Incremental: Fix possible memory and resource leaks + 0014-Incremental-Fix-possible-memory-and-resource-leaks.patch + - Mdmonitor: Fix segfault + 0015-Mdmonitor-Fix-segfault.patch + - Mdmonitor: Improve logging method + 0016-Mdmonitor-Improve-logging-method.patch + - Fix possible NULL ptr dereferences and memory leaks + 0017-Fix-possible-NULL-ptr-dereferences-and-memory-leaks.patch + - imsm: Remove possibility for get_imsm_dev to return + 0018-imsm-Remove-possibility-for-get_imsm_dev-to-return-N.patch + - Revert "mdadm: fix coredump of mdadm --monitor -r" + 0019-Revert-mdadm-fix-coredump-of-mdadm-monitor-r.patch + - util: replace ioctl use with function + 0020-util-replace-ioctl-use-with-function.patch + - mdadm/super1: restore commit 45a87c2f31335 to fix + 0021-mdadm-super1-restore-commit-45a87c2f31335-to-fix-clu.patch + - imsm: introduce get_disk_slot_in_dev() + 0022-imsm-introduce-get_disk_slot_in_dev.patch + - imsm: use same slot across container + 0023-imsm-use-same-slot-across-container.patch + - imsm: block changing slots during creation + 0024-imsm-block-changing-slots-during-creation.patch + - mdadm: block update=ppl for non raid456 levels + 0025-mdadm-block-update-ppl-for-non-raid456-levels.patch + - mdadm: Fix array size mismatch after grow + 0026-mdadm-Fix-array-size-mismatch-after-grow.patch + - mdadm: Remove dead code in imsm_fix_size_mismatch + 0027-mdadm-Remove-dead-code-in-imsm_fix_size_mismatch.patch + - Monitor: use devname as char array instead of pointer + 0028-Monitor-use-devname-as-char-array-instead-of-pointer.patch + - Monitor: use snprintf to fill device name + 0029-Monitor-use-snprintf-to-fill-device-name.patch + - Makefile: Don't build static build with everything and + 0030-Makefile-Don-t-build-static-build-with-everything-an.patch + - DDF: Cleanup validate_geometry_ddf_container() + 0031-DDF-Cleanup-validate_geometry_ddf_container.patch + - DDF: Fix NULL pointer dereference in + 0032-DDF-Fix-NULL-pointer-dereference-in-validate_geometr.patch + - mdadm/Grow: Fix use after close bug by closing after + 0033-mdadm-Grow-Fix-use-after-close-bug-by-closing-after-.patch + - monitor: Avoid segfault when calling NULL + 0034-monitor-Avoid-segfault-when-calling-NULL-get_bad_blo.patch + - mdadm: Fix mdadm -r remove option regression + 0035-mdadm-Fix-mdadm-r-remove-option-regression.patch + - mdadm: Fix optional --write-behind parameter + 0036-mdadm-Fix-optional-write-behind-parameter.patch + - mdadm: Replace obsolete usleep with nanosleep + 0037-mdadm-Replace-obsolete-usleep-with-nanosleep.patch + - mdadm: remove symlink option + 0038-mdadm-remove-symlink-option.patch + - mdadm: move data_offset to struct shape + 0039-mdadm-move-data_offset-to-struct-shape.patch + - mdadm: Don't open md device for CREATE and ASSEMBLE + 0040-mdadm-Don-t-open-md-device-for-CREATE-and-ASSEMBLE.patch + - Grow: Split Grow_reshape into helper function + 0041-Grow-Split-Grow_reshape-into-helper-function.patch + - Assemble: check if device is container before + 0042-Assemble-check-if-device-is-container-before-schedul.patch + - super1: report truncated device + 0043-super1-report-truncated-device.patch + - mdadm: Correct typos, punctuation and grammar in man + 0044-mdadm-Correct-typos-punctuation-and-grammar-in-man.patch + - Manage: Block unsafe member failing + 0045-Manage-Block-unsafe-member-failing.patch + - Monitor: Fix statelist memory leaks + 0046-Monitor-Fix-statelist-memory-leaks.patch + - mdadm: added support for Intel Alderlake RST on VMD + 0047-mdadm-added-support-for-Intel-Alderlake-RST-on-VMD-p.patch + - mdadm: Add Documentation entries to systemd services + 0048-mdadm-Add-Documentation-entries-to-systemd-services.patch + - ReadMe: fix command-line help + 0049-ReadMe-fix-command-line-help.patch + - mdadm: replace container level checking with inline + 0050-mdadm-replace-container-level-checking-with-inline.patch + - Mdmonitor: Omit non-md devices + 0051-Mdmonitor-Omit-non-md-devices.patch + +- Remove the following in house patch + 1004-mdadm-super1-restore-commit-45a87c2f31335-to-fix-clu.patch + because upstream merged version added in as + 0021-mdadm-super1-restore-commit-45a87c2f31335-to-fix-clu.patch +- Rename 0000-Makefile-install-mdadm_env.sh-to-usr-lib-mdadm.patch + to 1004-Makefile-install-mdadm_env.sh-to-usr-lib-mdadm.patch. + +- Update mdadm package to mdadm-4.2 (jsc#PED-1009, jsc#PED-947) + All important modifications since previous update to mdadm-4.2 + are listed here. + * The patches about Intel Matrix Storage Manager (including + VROC support), + - super-intel.c: Handle errors from calls to get_dev_sector_size() + - imsm: change wrong size verification + - imsm: add generic method to resolve "device" links + - imsm: add devpath_to_char method + - imsm: Limit support to the lowest namespace + - imsm: correct offset for 4k disks in --examine output + - imsm: Fix possible memory leaks and refactor freeing struct dl + - imsm: fix num_data_stripes after raid0 takeover + - imsm: introduce helpers to manage file descriptors + - imsm: free allocated memory in imsm_fix_size_mismatch + - imsm: assert if there is migration but prev_map doesn't exist + * The patches to fix program issues, + - mdadm/super1: It needs to specify int32 for bitmap_offset + - Fix memory leak after "mdadm --detail" + - Utils: Change sprintf to snprintf + - mdadm: fix coredump of mdadm --monitor -r + - Fix error message when creating raid 4, 5 and 10 + - Fix buffer size warning for strcp + - Fix potential overlap dest buffer + - Correct checking if file descriptors are valid + - Monitor: print message before quit for no array to monitor + * Improvement or bug fixes for mdadm itself, + - Assemble: skip devices that don't match uuid instead of aborting the + assembly. + - Assemble: apply sysfs rules + - Assemble: start dirty and degraded array. + - Incremental: Close unclosed mdfd in IncrementalScan() + - Monitor: make libudev dependency optional + - Manage: Call validate_geometry when adding drive to external + container + - Remove Spare drives line from details for external metadata + - Don't associate spares with other arrays during RAID Examine + - Add error handling for chunk size in RAID1 + - Add monitor delay parameter to mdadm.conf + - disallow create or grow clustered bitmap with writemostly set + - mdadm/Detail: Can't show container name correctly when unpluging disks + - mdadm: block creation with long names + - mdadm: fix growing containers + +- Remove the following patches because they are all included + in mdadm-4.2, + - 0001-Assemble-keep-MD_DISK_FAILFAST-and-MD_DISK_WRITEMOST.patch + - 0002-Document-PART-POLICY-lines.patch + - 0003-policy-support-devices-with-multiple-paths.patch + - 0004-mdcheck-add-systemd-unit-files-to-run-mdcheck.patch + - 0005-Monitor-add-system-timer-to-run-oneshot-periodically.patch + - 0006-imsm-update-metadata-correctly-while-raid10-double-d.patch + - 0007-Assemble-mask-FAILFAST-and-WRITEMOSTLY-flags-when-fi.patch + - 0008-Grow-avoid-overflow-in-compute_backup_blocks.patch + - 0009-Grow-report-correct-new-chunk-size.patch + - 0010-policy.c-prevent-NULL-pointer-referencing.patch + - 0012-policy.c-Fix-for-compiler-error.patch + - 0013-imsm-finish-recovery-when-drive-with-rebuild-fails.patch + - 0014-imsm-fix-reshape-for-2TB-drives.patch + - 0015-Fix-spelling-typos.patch + - 0016-Detail.c-do-not-skip-first-character-when-calling-xs.patch + - 0018-Fix-reshape-for-decreasing-data-offset.patch + - 0019-mdadm-tests-add-one-test-case-for-failfast-of-raid1.patch + - 0020-mdmon-don-t-attempt-to-manage-new-arrays-when-termin.patch + - 0021-mdmon-wait-for-previous-mdmon-to-exit-during-takeove.patch + - 0022-Assemble-Fix-starting-array-with-initial-reshape-che.patch + - 0023-add-missing-units-to-examine.patch + - 0024-imsm-fix-spare-activation-for-old-matrix-arrays.patch + - 0025-Create-Block-rounding-size-to-max.patch + - 0026-udev-Add-udev-rules-to-create-by-partuuid-for-md-dev.patch + - 0027-mdmon-fix-wrong-array-state-when-disk-fails-during-m.patch + - 0028-Enable-probe_roms-to-scan-more-than-6-roms.patch + - 0029-super-intel-Fix-issue-with-abs-being-irrelevant.patch + - 0030-mdadm.h-Introduced-unaligned-get-put-_unaligned-16-3.patch + - 0031-super-intel-Use-put_unaligned-in-split_ull.patch + - 0032-mdadm-load-default-sysfs-attributes-after-assemblati.patch + - 0033-mdadm.h-include-sysmacros.h-unconditionally.patch + - 0034-mdadm-add-no-devices-to-avoid-component-devices-deta.patch + - 0035-udev-add-no-devices-option-for-calling-mdadm-detail.patch + - 0036-imsm-close-removed-drive-fd.patch + - 0037-mdadm-check-value-returned-by-snprintf-against-error.patch + - 0038-mdadm-Introduce-new-array-state-broken-for-raid0-lin.patch + - 0039-mdadm-force-a-uuid-swap-on-big-endian.patch + - 0040-mdadm-md.4-add-the-descriptions-for-bitmap-sysfs-nod.patch + - 0041-Init-devlist-as-an-array.patch + - 0042-Don-t-need-to-check-recovery-after-re-add-when-no-I-.patch + - 0043-udev-allow-for-udev-attribute-reading-bug.patch + - 0044-imsm-save-current_vol-number.patch + - 0045-imsm-allow-to-specify-second-volume-size.patch + - 0046-mdcheck-when-mdcheck_start-is-enabled-enable-mdcheck.patch + - 0050-mdcheck-use-to-pass-variable-to-mdcheck.patch + - 0051-SUSE-mdadm_env.sh-handle-MDADM_CHECK_DURATION.patch + - 0052-super-intel-don-t-mark-structs-packed-unnecessarily.patch + - 0053-Manage-Remove-the-legacy-code-for-md-driver-prior-to.patch + - 0054-Remove-last-traces-of-HOT_ADD_DISK.patch + - 0055-Fix-up-a-few-formatting-issues.patch + - 0056-Remove-unused-code.patch + - 0057-imsm-return-correct-uuid-for-volume-in-detail.patch + - 0058-imsm-Change-the-way-of-printing-nvme-drives-in-detai.patch + - 0059-Create-add-support-for-RAID0-layouts.patch + - 0060-Assemble-add-support-for-RAID0-layouts.patch + - 0061-Respect-CROSS_COMPILE-when-CC-is-the-default.patch + - 0062-Change-warning-message.patch + - 0063-mdcheck-service-can-t-start-succesfully-because-of-s.patch + - 0064-imsm-Update-grow-manual.patch + - 0065-Add-support-for-Tebibytes.patch + - 0066-imsm-fill-working_disks-according-to-metadata.patch + - 0067-mdadm.8-add-note-information-for-raid0-growing-opera.patch + - 0068-Remove-the-legacy-whitespace.patch + - 0069-imsm-pass-subarray-id-to-kill_subarray-function.patch + - 0070-imsm-Remove-dump-restore-implementation.patch + - 0071-Monitor-improve-check_one_sharer-for-checking-duplic.patch + - 0072-Detail-adding-sync-status-for-cluster-device.patch + - 0073-imsm-Correct-minimal-device-size.patch + - 0074-Detail-show-correct-bitmap-info-for-cluster-raid-dev.patch + - 0075-imsm-support-the-Array-Creation-Time-field-in-metada.patch + - 0076-imsm-show-Subarray-and-Volume-ID-in-examine-output.patch + - 0077-udev-Ignore-change-event-for-imsm.patch + - 0078-Manage-imsm-Write-metadata-before-add.patch + - 0079-Assemble-print-error-message-if-mdadm-fails-assembli.patch + - 0080-clean-up-meaning-of-small-typo.patch + - 0081-Assemble.c-respect-force-flag.patch + - 0082-mdcheck-Log-when-done.patch + - 0083-Makefile-add-EXTRAVERSION-support.patch + - 0084-uuid.c-split-uuid-stuffs-from-util.c.patch + - 0085-Include-count-for-0-character-when-using-strncpy-to-.patch + - 0086-restripe-fix-ignoring-return-value-of-read-and-lseek.patch + - 0087-Block-overwriting-existing-links-while-manual-assemb.patch + - 0088-Detect-too-small-device-error-rather-than-underflow-.patch + - 0089-Use-more-secure-HTTPS-URLs.patch + - 0090-Update-link-to-Intel-page-for-IMSM.patch + - 0091-mdadm-Grow-prevent-md-s-fd-from-being-occupied-durin.patch + - 0092-Specify-nodes-number-when-updating-cluster-nodes.patch + - 0093-mdadm-md.4-update-path-to-in-kernel-tree-documentati.patch + - 0094-manual-update-examine-badblocks.patch + - 0095-Detail-show-correct-raid-level-when-the-array-is-ina.patch + - 0096-Don-t-create-bitmap-for-raid5-with-journal-disk.patch + - 0097-Monitor-refresh-mdstat-fd-after-select.patch + - 0098-Monitor-stop-notifing-about-containers.patch + - 0099-mdmonitor-set-small-delay-once.patch + - 0100-Check-if-other-Monitor-instance-running-before-fork.patch + - 0101-Super1-allow-RAID0-layout-setting-to-be-removed.patch + - 0102-Detail-fix-segfault-during-IMSM-raid-creation.patch + - 0103-Create.c-close-mdfd-and-generate-uevent.patch + - 0104-imsm-update-num_data_stripes-according-to-dev_size.patch + - 0105-imsm-remove-redundant-calls-to-imsm_get_map.patch + - 0106-Monitor-don-t-use-default-modes-when-creating-a-file.patch + - 0107-imsm-limit-support-to-first-NVMe-namespace.patch + - 0108-mdadm-Unify-forks-behaviour.patch + - 0109-mdadm-Detail-show-correct-state-for-clustered-array.patch + - 0110-Make-target-to-install-binaries-only.patch + - 0111-udev-start-grow-service-automatically.patch + - 0112-Incremental-Remove-redundant-spare-movement-logic.patch + - 0113-Dump-get-stat-from-a-wrong-metadata-file-when-restor.patch + - 0114-super1-fix-Floating-point-exception.patch + - 0115-super1.c-avoid-useless-sync-when-bitmap-switches-fro.patch + - 0116-imsm-nvme-multipath-support.patch + - 0117-Grow-be-careful-of-corrupt-dev_roles-list.patch + - 0118-Remove-Spare-drives-line-from-details-for-external-m.patch + - 0119-Don-t-associate-spares-with-other-arrays-during-RAID.patch + - 0120-udev-md-raid-assembly.rules-skip-if-DM_UDEV_DISABLE_.patch + - 0121-imsm-support-for-third-Sata-controller.patch +- The patch from SLE15-SP4 is removed because it is in mdadm-4.2 + upstream already, + - Monitor: print message before quit for no array to monitor + (bsc#1183229) + 0120-Monitor-print-message-before-quit-for-no-array-to-mo.patch + +------------------------------------------------------------------- +Mon Sep 19 14:18:41 CST 2022 - Coly Li + +- mdadm.spec: add EXTRAVERSION string to make command line + (jsc#SLE-24761, bsc#1193566) + +------------------------------------------------------------------- +Thu Aug 11 11:41:37 UTC 2022 - Coly Li + +- imsm: support for third Sata controller (bsc#1201297) + 0121-imsm-support-for-third-Sata-controller.patch +- mdadm: enable Intel Alderlake RSTe configuration (bsc#1201297) + 1005-mdadm-enable-Intel-Alderlake-RSTe-configuration.patch + +------------------------------------------------------------------- +Mon May 30 08:25:00 UTC 2022 - Heming Zhao + +- resource RAID failed during cluster patch, Mdadm gets floating point error (bsc#1197158) + 1004-mdadm-super1-restore-commit-45a87c2f31335-to-fix-clu.patch + +------------------------------------------------------------------- +Fri Mar 18 22:48:41 UTC 2022 - Martin Wilck + +- skip RAID assembly if DM_UDEV_DISABLE_OTHER_RULES_FLAG (bsc#1196054) + * Add 0120-udev-md-raid-assembly.rules-skip-if-DM_UDEV_DISABLE_.patch + +------------------------------------------------------------------- +Tue Nov 23 08:42:24 UTC 2021 - Stefan Weiberg + +- Use %{_sbindir} for prerequisite of mkinitrd to work with + usrmerge of dracut-mkinitrd-deprecated + +------------------------------------------------------------------- +Wed Oct 6 04:15:49 UTC 2021 - Neil Brown + +- Install mdadm in _sbindir rather than /sbin. This is more + appropriate now that we have a merged-/usr. + (bsc#1191076) + +------------------------------------------------------------------- +Thu Sep 2 05:17:18 UTC 2021 - Coly Li + +- Remove Spare drives line from details for external metadata + (bsc#1180661, bsc#1182642) + 0118-Remove-Spare-drives-line-from-details-for-external-m.patch +- Don't associate spares with other arrays during RAID Examine + (bsc#1180661, bsc#1182642) + 0119-Don-t-associate-spares-with-other-arrays-during-RAID.patch + +------------------------------------------------------------------- +Fri May 14 14:40:40 UTC 2021 - Coly Li + +- Grow: be careful of corrupt dev_roles list (bsc#1181619) + 0117-Grow-be-careful-of-corrupt-dev_roles-list.patch + +------------------------------------------------------------------- +Fri May 14 12:17:31 UTC 2021 - Coly Li + +- imsm: nvme multipath support (bsc#1175758) + 0116-imsm-nvme-multipath-support.patch + +------------------------------------------------------------------- +Wed Mar 17 02:35:00 UTC 2021 - Heming Zhao + +- cluster-md/mdadm : avoid useless re-sync (bsc#1181341) + 0114-super1-fix-Floating-point-exception.patch + 0115-super1.c-avoid-useless-sync-when-bitmap-switches-fro.patch + +------------------------------------------------------------------- +Tue Jan 5 12:02:12 UTC 2021 - Coly Li + +- Incremental: Remove redundant spare movement logic + (jsc#SLE-13700, bsc#1180220) + 0112-Incremental-Remove-redundant-spare-movement-logic.patch +- Dump: get stat from a wrong metadata file when restoring metadata + (jsc#SLE-13700) + 0113-Dump-get-stat-from-a-wrong-metadata-file-when-restor.patch + +------------------------------------------------------------------- +Sat Dec 5 13:53:38 UTC 2020 - Coly Li +- There are some important fixes merged in mdadm upstream which + should go with jsc#SLE-13700. This is the update from upstream + mdadm including the important fixes we should have. + +- Detail: show correct raid level when the array is inactive + (jsc#SLE-13700) + 0095-Detail-show-correct-raid-level-when-the-array-is-ina.patch +- Don't create bitmap for raid5 with journal disk + (jsc#SLE-13700) + 0096-Don-t-create-bitmap-for-raid5-with-journal-disk.patch +- Monitor: refresh mdstat fd after select (jsc#SLE-13700) + 0097-Monitor-refresh-mdstat-fd-after-select.patch +- Monitor: stop notifing about containers. (jsc#SLE-13700) + 0098-Monitor-stop-notifing-about-containers.patch +- mdmonitor: set small delay once (jsc#SLE-13700) + 0099-mdmonitor-set-small-delay-once.patch +- Check if other Monitor instance running before fork. + (jsc#SLE-13700) + 0100-Check-if-other-Monitor-instance-running-before-fork.patch +- Super1: allow RAID0 layout setting to be removed. + (jsc#SLE-13700) + 0101-Super1-allow-RAID0-layout-setting-to-be-removed.patch +- Detail: fix segfault during IMSM raid creation + (jsc#SLE-13700) + 0102-Detail-fix-segfault-during-IMSM-raid-creation.patch +- Create.c: close mdfd and generate uevent (jsc#SLE-13700) + 0103-Create.c-close-mdfd-and-generate-uevent.patch +- imsm: update num_data_stripes according to dev_size + (jsc#SLE-13700) + 0104-imsm-update-num_data_stripes-according-to-dev_size.patch +- imsm: remove redundant calls to imsm_get_map (jsc#SLE-13700) + 0105-imsm-remove-redundant-calls-to-imsm_get_map.patch +- Monitor: don't use default modes when creating a file + (jsc#SLE-13700) + 0106-Monitor-don-t-use-default-modes-when-creating-a-file.patch +- imsm: limit support to first NVMe namespace (jsc#SLE-13700) + 0107-imsm-limit-support-to-first-NVMe-namespace.patch +- mdadm: Unify forks behaviour (jsc#SLE-13700) + 0108-mdadm-Unify-forks-behaviour.patch +- mdadm/Detail: show correct state for clustered array + (jsc#SLE-13700) + 0109-mdadm-Detail-show-correct-state-for-clustered-array.patch +- Make target to install binaries only (jsc#SLE-13700) + 0110-Make-target-to-install-binaries-only.patch +- udev: start grow service automatically (jsc#SLE-13700) + 0111-udev-start-grow-service-automatically.patch + +------------------------------------------------------------------- +Sun Oct 11 16:14:50 UTC 2020 - Coly Li + +- Update to latest mdadm which is requested by jsc#SLE-13700 from + partners. Mostly the purpose is for latest Intel IMSM raid + support, while some other fixes are important too. + +- imsm: Correct minimal device size (jsc#SLE-13700) + 0073-imsm-Correct-minimal-device-size.patch +- Detail: show correct bitmap info for cluster raid device + (jsc#SLE-13700) + 0074-Detail-show-correct-bitmap-info-for-cluster-raid-dev.patch +- imsm: support the Array Creation Time field in metadata + (jsc#SLE-13700) + 0075-imsm-support-the-Array-Creation-Time-field-in-metada.patch +- imsm: show Subarray and Volume ID in --examine output + (jsc#SLE-13700) + 0076-imsm-show-Subarray-and-Volume-ID-in-examine-output.patch +- udev: Ignore change event for imsm (jsc#SLE-13700) + 0077-udev-Ignore-change-event-for-imsm.patch +- Manage, imsm: Write metadata before add (jsc#SLE-13700) + 0078-Manage-imsm-Write-metadata-before-add.patch +- Assemble: print error message if mdadm fails assembling + with --uuid option (jsc#SLE-13700) + 0079-Assemble-print-error-message-if-mdadm-fails-assembli.patch +- clean up meaning of small typo (jsc#SLE-13700) + 0080-clean-up-meaning-of-small-typo.patch +- Assemble.c: respect force flag (jsc#SLE-13700) + 0081-Assemble.c-respect-force-flag.patch +- mdcheck: Log when done (jsc#SLE-13700) + 0082-mdcheck-Log-when-done.patch +- Makefile: add EXTRAVERSION support (jsc#SLE-13700) + 0083-Makefile-add-EXTRAVERSION-support.patch +- uuid.c: split uuid stuffs from util.c (jsc#SLE-13700) + 0084-uuid.c-split-uuid-stuffs-from-util.c.patch +- Include count for \0 character when using strncpy to + implement strdup. (jsc#SLE-13700) + 0085-Include-count-for-0-character-when-using-strncpy-to-.patch +- restripe: fix ignoring return value of read and lseek + (jsc#SLE-13700) + 0086-restripe-fix-ignoring-return-value-of-read-and-lseek.patch +- Block overwriting existing links while manual assembly + (jsc#SLE-13700) + 0087-Block-overwriting-existing-links-while-manual-assemb.patch +- Detect too-small device: error rather than underflow/crash + (jsc#SLE-13700) + 0088-Detect-too-small-device-error-rather-than-underflow-.patch +- Use more secure HTTPS URLs (jsc#SLE-13700) + 0089-Use-more-secure-HTTPS-URLs.patch +- Update link to Intel page for IMSM (jsc#SLE-13700) + 0090-Update-link-to-Intel-page-for-IMSM.patch +- mdadm/Grow: prevent md's fd from being occupied during delayed time + (jsc#SLE-13700) + 0091-mdadm-Grow-prevent-md-s-fd-from-being-occupied-durin.patch +- Specify nodes number when updating cluster nodes (jsc#SLE-13700) + 0092-Specify-nodes-number-when-updating-cluster-nodes.patch +- mdadm/md.4: update path to in-kernel-tree documentation + (jsc#SLE-13700) + 0093-mdadm-md.4-update-path-to-in-kernel-tree-documentati.patch +- manual: update --examine-badblocks (jsc#SLE-13700) + 0094-manual-update-examine-badblocks.patch + +------------------------------------------------------------------- +Sun Aug 30 16:08:02 UTC 2020 - Coly Li + +- mdadm: treat the Dell softraid array as local array (bsc#1175004) + 1003-mdadm-treat-the-Dell-softraid-array-as-local-array.patch + +------------------------------------------------------------------- +Tue Jul 7 09:35:58 UTC 2020 - Callum Farmer + +- Fixes for %_libexecdir changing to /usr/libexec(bsc#1174075) + +------------------------------------------------------------------- +Mon Jun 22 16:12:47 UTC 2020 - Coly Li + +- OnCalendar format fix of mdcheck_start.timer (bsc#1173137) + 1002-OnCalendar-format-fix-of-mdcheck_start-timer.patch + +------------------------------------------------------------------- +Mon Jun 22 15:33:44 UTC 2020 - Coly Li + +- Detail: adding sync status for cluster device + (bsc#1163727) + 0072-Detail-adding-sync-status-for-cluster-device.patch +- Monitor: improve check_one_sharer() for checking duplicated process + (bsc#1168953) + 0071-Monitor-improve-check_one_sharer-for-checking-duplic.patch + +------------------------------------------------------------------- +Fri Mar 27 03:52:47 UTC 2020 - Neil Brown + +- Don't list XX@.services even for sevice_del_preun + They cannot be stopped without an instance name, + so there is no value in listing them, and it causes + and error with "rpm -e mdadm --nodeps". + (bsc#1093163) + +------------------------------------------------------------------- +Tue Mar 3 05:32:58 UTC 2020 - Coly Li + +- Update for latest mdadm-4.1+ patches, this is required by + jsc#SLE-10078 and jsc#SLE-9348. Mostly the purpose is for + latest Intel IMSM raid support. + The following patches also include previous patches with + new re-ordered prefix numbers. + +- Makefile: install mdadm_env.sh to /usr/lib/mdadm (bsc#1111960) + 0000-Makefile-install-mdadm_env.sh-to-usr-lib-mdadm.patch +- Assemble: keep MD_DISK_FAILFAST and MD_DISK_WRITEMOSTLY flag + (jsc#SLE-10078, jsc#SLE-9348) + 0001-Assemble-keep-MD_DISK_FAILFAST-and-MD_DISK_WRITEMOST.patch +- Document PART-POLICY lines (jsc#SLE-10078, jsc#SLE-9348) + 0002-Document-PART-POLICY-lines.patch +- policy: support devices with multiple paths. + (jsc#SLE-10078, jsc#SLE-9348) + 0003-policy-support-devices-with-multiple-paths.patch +- mdcheck: add systemd unit files to run mdcheck. (bsc#1115407) + 0004-mdcheck-add-systemd-unit-files-to-run-mdcheck.patch +- Monitor: add system timer to run --oneshot periodically (bsc#1115407) + 0005-Monitor-add-system-timer-to-run-oneshot-periodically.patch +- imsm: update metadata correctly while raid10 double + (jsc#SLE-10078, jsc#SLE-9348) + 0006-imsm-update-metadata-correctly-while-raid10-double-d.patch +- Assemble: mask FAILFAST and WRITEMOSTLY flags when finding + (jsc#SLE-10078, jsc#SLE-9348) + 0007-Assemble-mask-FAILFAST-and-WRITEMOSTLY-flags-when-fi.patch +- Grow: avoid overflow in compute_backup_blocks() + (jsc#SLE-10078, jsc#SLE-9348) + 0008-Grow-avoid-overflow-in-compute_backup_blocks.patch +- Grow: report correct new chunk size. (jsc#SLE-10078, jsc#SLE-9348) + 0009-Grow-report-correct-new-chunk-size.patch +- policy.c: prevent NULL pointer referencing (bsc#1106078) + 0010-policy.c-prevent-NULL-pointer-referencing.patch +- policy.c: Fix for compiler error (jsc#SLE-10078, jsc#SLE-9348) + 0012-policy.c-Fix-for-compiler-error.patch +- imsm: finish recovery when drive with rebuild fails (bsc#1126975) + 0013-imsm-finish-recovery-when-drive-with-rebuild-fails.patch +- imsm: fix reshape for >2TB drives (jsc#SLE-10078, jsc#SLE-9348) + 0014-imsm-fix-reshape-for-2TB-drives.patch +- Fix spelling typos. (jsc#SLE-10078, jsc#SLE-9348) + 0015-Fix-spelling-typos.patch +- Detail.c: do not skip first character when calling xstrdup in + Detail() (bsc#1123814) + 0016-Detail.c-do-not-skip-first-character-when-calling-xs.patch +- Fix reshape for decreasing data offset (jsc#SLE-10078, jsc#SLE-9348) + 0018-Fix-reshape-for-decreasing-data-offset.patch +- mdadm/tests: add one test case for failfast of raid1 + (jsc#SLE-10078, jsc#SLE-9348) + 0019-mdadm-tests-add-one-test-case-for-failfast-of-raid1.patch +- mdmon: don't attempt to manage new arrays when terminating + (bsc#1127526) + 0020-mdmon-don-t-attempt-to-manage-new-arrays-when-termin.patch +- mdmon: wait for previous mdmon to exit during takeover + (jsc#SLE-10078, jsc#SLE-9348) + 0021-mdmon-wait-for-previous-mdmon-to-exit-during-takeove.patch +- Assemble: Fix starting array with initial reshape checkpoint + (jsc#SLE-10078, jsc#SLE-9348) + 0022-Assemble-Fix-starting-array-with-initial-reshape-che.patch +- add missing units to --examine (jsc#SLE-10078, jsc#SLE-9348) + 0023-add-missing-units-to-examine.patch +- imsm: fix spare activation for old matrix arrays + (jsc#SLE-10078, jsc#SLE-9348) + 0024-imsm-fix-spare-activation-for-old-matrix-arrays.patch +- Create: Block rounding size to max (jsc#SLE-10078, jsc#SLE-9348) + 0025-Create-Block-rounding-size-to-max.patch +- udev: Add udev rules to create by-partuuid for md device + (jsc#SLE-10078, jsc#SLE-9348) + 0026-udev-Add-udev-rules-to-create-by-partuuid-for-md-dev.patch +- mdmon: fix wrong array state when disk fails during mdmon + (jsc#SLE-10078, jsc#SLE-9348) + 0027-mdmon-fix-wrong-array-state-when-disk-fails-during-m.patch +- Enable probe_roms to scan more than 6 roms. (bsc#1156040) + 0028-Enable-probe_roms-to-scan-more-than-6-roms.patch +- super-intel: Fix issue with abs() being irrelevant + (jsc#SLE-10078, jsc#SLE-9348) + 0029-super-intel-Fix-issue-with-abs-being-irrelevant.patch +- mdadm.h: Introduced unaligned {get,put}_unaligned{16,32}() + (jsc#SLE-10078, jsc#SLE-9348) + 0030-mdadm.h-Introduced-unaligned-get-put-_unaligned-16-3.patch +- super-intel: Use put_unaligned in split_ull + (jsc#SLE-10078, jsc#SLE-9348) + 0031-super-intel-Use-put_unaligned-in-split_ull.patch +- mdadm: load default sysfs attributes after assemblation + (jsc#SLE-10078, jsc#SLE-9348) + 0032-mdadm-load-default-sysfs-attributes-after-assemblati.patch +- mdadm.h: include sysmacros.h unconditionally + (jsc#SLE-10078, jsc#SLE-9348) + 0033-mdadm.h-include-sysmacros.h-unconditionally.patch +- mdadm: add --no-devices to avoid component devices detail + (bsc#1139709) + 0034-mdadm-add-no-devices-to-avoid-component-devices-deta.patch +- udev: add --no-devices option for calling 'mdadm (bsc#1139709) + 0035-udev-add-no-devices-option-for-calling-mdadm-detail.patch +- imsm: close removed drive fd. (jsc#SLE-10078, jsc#SLE-9348) + 0036-imsm-close-removed-drive-fd.patch +- mdadm: check value returned by snprintf against errors + (jsc#SLE-10078, jsc#SLE-9348) + 0037-mdadm-check-value-returned-by-snprintf-against-error.patch +- mdadm: Introduce new array state 'broken' for raid0/linear + (jsc#SLE-10078, jsc#SLE-9348) + 0038-mdadm-Introduce-new-array-state-broken-for-raid0-lin.patch +- mdadm: force a uuid swap on big endian (jsc#SLE-10078, jsc#SLE-9348) + 0039-mdadm-force-a-uuid-swap-on-big-endian.patch +- mdadm/md.4: add the descriptions for bitmap sysfs nodes + (jsc#SLE-10078, jsc#SLE-9348) + 0040-mdadm-md.4-add-the-descriptions-for-bitmap-sysfs-nod.patch +- Init devlist as an array (jsc#SLE-10078, jsc#SLE-9348) + 0041-Init-devlist-as-an-array.patch +- Don't need to check recovery after re-add when no I/O writes + (jsc#SLE-10078, jsc#SLE-9348) + 0042-Don-t-need-to-check-recovery-after-re-add-when-no-I-.patch +- udev: allow for udev attribute reading bug. + (jsc#SLE-10078, jsc#SLE-9348) + 0043-udev-allow-for-udev-attribute-reading-bug.patch +- imsm: save current_vol number (jsc#SLE-10078, jsc#SLE-9348) + 0044-imsm-save-current_vol-number.patch +- imsm: allow to specify second volume size + (jsc#SLE-10078, jsc#SLE-9348) + 0045-imsm-allow-to-specify-second-volume-size.patch +- mdcheck: when mdcheck_start is enabled, enable (bsc#1153258) + 0046-mdcheck-when-mdcheck_start-is-enabled-enable-mdcheck.patch +- mdcheck: use ${} to pass variable to mdcheck (bsc#1153258) + 0050-mdcheck-use-to-pass-variable-to-mdcheck.patch +- SUSE-mdadm_env.sh: handle MDADM_CHECK_DURATION (bsc#1153258) + 0051-SUSE-mdadm_env.sh-handle-MDADM_CHECK_DURATION.patch +- super-intel: don't mark structs 'packed' unnecessarily + (jsc#SLE-10078, jsc#SLE-9348) + 0052-super-intel-don-t-mark-structs-packed-unnecessarily.patch +- Manage: Remove the legacy code for md driver prior to 0.90.03 + (jsc#SLE-10078, jsc#SLE-9348) + 0053-Manage-Remove-the-legacy-code-for-md-driver-prior-to.patch +- Remove last traces of HOT_ADD_DISK (jsc#SLE-10078, jsc#SLE-9348) + 0054-Remove-last-traces-of-HOT_ADD_DISK.patch +- Fix up a few formatting issues (jsc#SLE-10078, jsc#SLE-9348) + 0055-Fix-up-a-few-formatting-issues.patch +- Remove unused code (jsc#SLE-10078, jsc#SLE-9348) + 0056-Remove-unused-code.patch +- imsm: return correct uuid for volume in detail + (jsc#SLE-10078, jsc#SLE-9348) + 0057-imsm-return-correct-uuid-for-volume-in-detail.patch +- imsm: Change the way of printing nvme drives in + (jsc#SLE-10078, jsc#SLE-9348) + 0058-imsm-Change-the-way-of-printing-nvme-drives-in-detai.patch +- Create: add support for RAID0 layouts. (bsc#1162479) + 0059-Create-add-support-for-RAID0-layouts.patch +- Assemble: add support for RAID0 layouts. (bsc#1162479) + 0060-Assemble-add-support-for-RAID0-layouts.patch +- Respect $(CROSS_COMPILE) when $(CC) is the default + (jsc#SLE-10078, jsc#SLE-9348) + 0061-Respect-CROSS_COMPILE-when-CC-is-the-default.patch +- Change warning message (jsc#SLE-10078, jsc#SLE-9348) + 0062-Change-warning-message.patch +- mdcheck service can't start succesfully because of syntax + (jsc#SLE-10078, jsc#SLE-9348) + 0063-mdcheck-service-can-t-start-succesfully-because-of-s.patch +- imsm: Update grow manual. (jsc#SLE-10078, jsc#SLE-9348) + 0064-imsm-Update-grow-manual.patch +- Add support for Tebibytes (jsc#SLE-10078, jsc#SLE-9348) + 0065-Add-support-for-Tebibytes.patch +- imsm: fill working_disks according to metadata. + (jsc#SLE-10078, jsc#SLE-9348) + 0066-imsm-fill-working_disks-according-to-metadata.patch +- mdadm.8: add note information for raid0 growing operation + (bsc#1129900) + 0067-mdadm.8-add-note-information-for-raid0-growing-opera.patch +- Remove the legacy whitespace (jsc#SLE-10078, jsc#SLE-9348) + 0068-Remove-the-legacy-whitespace.patch +- imsm: pass subarray id to kill_subarray function + (jsc#SLE-10078, jsc#SLE-9348) + 0069-imsm-pass-subarray-id-to-kill_subarray-function.patch +- imsm: Remove --dump/--restore implementation + (jsc#SLE-10078, jsc#SLE-9348) + 0070-imsm-Remove-dump-restore-implementation.patch + +------------------------------------------------------------------- +Tue Mar 3 05:31:39 UTC 2020 - Coly Li + +- Rename the following patches, they will be listed with new + re-ordered prefix number in following commit, + 0001-Document-PART-POLICY-lines.patch + 0001-Makefile-install-mdadm_env.sh-to-usr-lib-mdadm.patch + 0002-policy-support-devices-with-multiple-paths.patch + 0003-mdcheck-add-systemd-unit-files-to-run-mdcheck.patch + 0004-Monitor-add-system-timer-to-run-oneshot-periodically.patch + 0005-imsm-update-metadata-correctly-while-raid10-double-d.patch + 0006-Grow-avoid-overflow-in-compute_backup_blocks.patch + 0007-Grow-report-correct-new-chunk-size.patch + 0008-policy.c-prevent-NULL-pointer-referencing.patch + 0009-Detail.c-do-not-skip-first-character-when-calling-xs.patch + 0010-imsm-finish-recovery-when-drive-with-rebuild-fails.patch + 0011-mdmon-don-t-attempt-to-manage-new-arrays-when-termin.patch + 0012-mdcheck-when-mdcheck_start-is-enabled-enable-mdcheck.patch + 0013-mdcheck-use-to-pass-variable-to-mdcheck.patch + 0014-SUSE-mdadm_env.sh-handle-MDADM_CHECK_DURATION.patch + 0015-Create-add-support-for-RAID0-layouts.patch + 0016-Assemble-add-support-for-RAID0-layouts.patch + 1002-mdadm.8-add-note-information-for-raid0-growing-opera.patch + +------------------------------------------------------------------- +Tue Mar 3 05:31:21 UTC 2020 - Coly Li + +- Enable probe_roms to scan more than 6 roms. (bsc#1156040) + 0028-Enable-probe_roms-to-scan-more-than-6-roms.patch + +------------------------------------------------------------------- +Tue Mar 3 05:28:56 UTC 2020 - Coly Li + +- Add mdadm fixes from SLE15-SP1 package, +- Create: add support for RAID0 layouts. (bsc#1162479) + 0059-Create-add-support-for-RAID0-layouts.patch +- Assemble: add support for RAID0 layouts. (bsc#1162479) + 0060-Assemble-add-support-for-RAID0-layouts.patch +- mdadm.8: add note information for raid0 growing operation + (bsc#1129900) + 0067-mdadm.8-add-note-information-for-raid0-growing-opera.patch + +------------------------------------------------------------------- +Fri Feb 7 11:31:21 UTC 2020 - Coly Li + +- Create: add support for RAID0 layouts. (bsc#1162479) + 0015-Create-add-support-for-RAID0-layouts.patch +- Assemble: add support for RAID0 layouts. (bsc#1162479) + 0016-Assemble-add-support-for-RAID0-layouts.patch +- mdadm.8: add note information for raid0 growing operation + (bsc#1129900) + 1002-mdadm.8-add-note-information-for-raid0-growing-opera.patch + +------------------------------------------------------------------- +Wed Oct 30 00:10:38 UTC 2019 - Neil Brown + +- 0012-mdcheck-when-mdcheck_start-is-enabled-enable-mdcheck.patch + 0013-mdcheck-use-to-pass-variable-to-mdcheck.patch + 0014-SUSE-mdadm_env.sh-handle-MDADM_CHECK_DURATION.patch + Improve mdcheck (bsc#1153258) + +------------------------------------------------------------------- +Thu Mar 28 11:43:38 UTC 2019 - colyli@suse.com + +- imsm: finish recovery when drive with rebuild fails (bsc#1126975) + 0010-imsm-finish-recovery-when-drive-with-rebuild-fails.patch +- mdmon: don't attempt to manage new arrays when terminating + (bsc#1127526) + 0011-mdmon-don-t-attempt-to-manage-new-arrays-when-termin.patch + +------------------------------------------------------------------- +Tue Feb 12 06:21:48 UTC 2019 - colyli@suse.com + +- Detail.c: do not skip first character when calling xstrdup in + Detail() (bsc#1123814) + 0009-Detail.c-do-not-skip-first-character-when-calling-xs.patch + +------------------------------------------------------------------- +Tue Dec 11 13:52:25 UTC 2018 - Jan Engelhardt + +- Update description. Remove references to historic software. + +------------------------------------------------------------------- +Mon Dec 10 01:52:35 UTC 2018 - Neil Brown + +- 0001-Document-PART-POLICY-lines.patch + 0002-policy-support-devices-with-multiple-paths.patch + 0008-policy.c-prevent-NULL-pointer-referencing.patch + (bsc#1106078) + +- 0003-mdcheck-add-systemd-unit-files-to-run-mdcheck.patch + 0004-Monitor-add-system-timer-to-run-oneshot-periodically.patch + Remove mdadm.cron + Remove crond.mdadm + (bsc#1115407) + +- 0005-imsm-update-metadata-correctly-while-raid10-double-d.patch + 0006-Grow-avoid-overflow-in-compute_backup_blocks.patch + 0007-Grow-report-correct-new-chunk-size.patch + Other useful upstream patches. + +------------------------------------------------------------------- +Wed Oct 17 03:27:21 UTC 2018 - Coly Li + +- Update mdadm code base to mdadm-4.1 + (FATE#325869, bsc#1111960) + - Assorted bug-fixes, minor improvements, and code cleanup + - Add PPL support (alternate change-journalling model) +- Fix Makefile to install mdadm_env.sh to /usr/lib/mdadm/ + (bsc#1111960) + 0001-Makefile-install-mdadm_env.sh-to-usr-lib-mdadm.patch +- Remove the following code base and patches since they are in + mdadm-4.1 already, + - mdadm-4.0.tar.xz + - 0001-Makefile-Fix-date-to-be-output-in-ISO-format.patch + - 0002-imsm-fix-missing-error-message-during-migration.patch + - 0003-Fix-oddity-where-mdadm-did-not-recognise-a-relative-.patch + - 0004-mdadm-check-the-nodes-when-operate-clustered-array.patch + - 0005-examine-tidy-up-some-code.patch + - 0006-mdadm-add-man-page-for-symlinks.patch + - 0007-mdadm-add-checking-clustered-bitmap-in-assemble-mode.patch + - 0008-mdadm-Add-Wimplicit-fallthrough-0-in-Makefile.patch + - 0009-mdadm-Specify-enough-length-when-write-to-buffer.patch + - 0010-mdadm-it-doesn-t-make-sense-to-set-bitmap-twice.patch + - 0011-mdadm-Monitor-Fix-NULL-pointer-dereference-when-stat.patch + - 0012-Replace-snprintf-with-strncpy-at-some-places-to-avoi.patch + - 0013-mdadm-Forced-type-conversion-to-avoid-truncation.patch + - 0014-super1-ignore-failfast-flag-for-setting-device-role.patch + - 0015-mdadm-bitmap-fixed-typos-in-comments-of-bitmap.h.patch + - 0016-udev-md-raid-assembly.rules-Skip-non-ready-devices.patch + - 0017-Retry-HOT_REMOVE_DISK-a-few-times.patch + - 0018-mdadm-Build-check-the-level-parameter-when-build-new.patch + - 0019-Introduce-sys_hot_remove_disk.patch + - 0020-Add-force-flag-to-hot_remove_disk.patch + - 0021-Detail-handle-non-existent-arrays-better.patch + - 0022-Generic-support-for-consistency-policy-and-PPL.patch + - 0023-Detail-show-consistency-policy.patch + - 0024-imsm-PPL-support.patch + - 0025-super1-PPL-support.patch + - 0026-Add-ppl-and-no-ppl-options-for-update.patch + - 0027-Grow-support-consistency-policy-change.patch + - 0028-mdadm.h-struct-mdinfo-reorganize-ppl-elements-for-be.patch + - 0029-super1-replace-hard-coded-values-with-bit-definition.patch + - 0030-mdadm-Clean-up-some-ugly-multiple-actions-on-single-.patch + - 0031-mdadm-Fixup-a-number-of-whitespace-inconsistency-cas.patch + - 0032-util-Cosmetic-changes.patch + - 0033-Grow-Fixup-a-pile-of-cosmetic-issues.patch + - 0034-Grow-Remove-unnecessary-optimization.patch + - 0035-Grow-Do-not-shadow-an-existing-variable.patch + - 0036-imsm-use-rounded-size-for-metadata-initialization.patch + - 0037-mdadm.c-fix-compile-error-switch-condition-has-boole.patch + - 0038-mdadm-Create-declaring-an-existing-struct-within-sam.patch + - 0039-Create-Fixup-bad-placement-of-logical-in-multi-line-.patch + - 0040-Create-Fixup-various-whitespace-issues.patch + - 0041-mdadm.c-fix-compile-warning-mdfd-is-uninitialized.patch + - 0042-mdopen-use-parameters-new_array-to-create-arrays-whe.patch + - 0043-mdadm-manpage-update-manpage-for-readonly-parameter.patch + - 0044-mdadm-manpage-clustered-arrays-don-t-support-array-s.patch + - 0045-maps-Terminate-modes-map-correctly.patch + - 0046-Grow_continue_command-ensure-content-is-properly-ini.patch + - 0047-systemd-mdadm-last-resort-use-ConditionPathExists-in.patch + - 0048-Detail-ensure-export-names-are-acceptable-as-shell-v.patch + - 0049-Grow-set-component-size-prior-to-array-size.patch + - 0050-Grow-don-t-allow-to-enable-PPL-when-reshape-is-in-pr.patch + - 0051-Grow-don-t-allow-array-geometry-change-with-ppl-enab.patch + - 0052-IMSM-Correct-examine-output-for-4k-disks.patch + - 0053-imsm-allow-drives-in-a-container-regardless-of-secto.patch + - 0054-imsm-allocate-buffer-to-support-maximum-sector-size.patch + - 0055-imsm-don-t-allow-disks-with-different-sector-size-in.patch + - 0056-mdadm-mdmon-deleted-the-abort_reshape-never-invoked.patch + - 0057-util-Introduce-md_get_array_info.patch + - 0058-Incremental-Remove-redundant-call-for-GET_ARRAY_INFO.patch + - 0059-util-Introduce-md_get_disk_info.patch + - 0060-util-Introduce-md_set_array_info.patch + - 0061-md_u-Remove-some-unused-ioctl-declarations.patch + - 0062-mdadm-grow-reshape-would-be-stuck-from-raid1-to-raid.patch + - 0063-sysfs-Use-the-presence-of-sys-block-dev-md-as-indica.patch + - 0064-sysfs-Make-sysfs_init-return-an-error-code.patch + - 0065-util-must_be_container-Use-sysfs_read-GET_VERSION-to.patch + - 0066-util-set_array_info-Simplify-code-since-md_get_versi.patch + - 0067-Assemble-Assemble-Stop-checking-kernel-md-driver-ver.patch + - 0068-Build-Stop-bothering-about-supporting-md-driver-olde.patch + - 0069-Grow-Stop-bothering-about-md-driver-versions-older-t.patch + - 0070-Detail-Stop-bothering-about-md-drivers-older-than-0..patch + - 0071-Create-Remove-all-attemps-to-handle-md-driver-older-.patch + - 0072-Manage-Remove-all-references-to-md_get_version.patch + - 0073-Query-Remove-all-references-to-md_get_version.patch + - 0074-bitmap-Remove-use-of-md_get_version.patch + - 0075-mdmon-Stop-bothering-about-md_get_version.patch + - 0076-mdopen-open_mddev-Use-md_get_array_info-to-determine.patch + - 0077-mdassemble-Use-md_get_array_info-to-check-for-valid-.patch + - 0078-Assemble-Assemble-Get-rid-of-last-use-of-md_get_vers.patch + - 0079-util-Finally-kill-off-md_get_version.patch + - 0080-mdadm-Fail-for-kernels-older-than-2.6.15.patch + - 0081-Revert-mdadm-grow-reshape-would-be-stuck-from-raid1-.patch + - 0082-Retire-mdassemble.patch + - 0083-super1-Clean-up-various-style-abuses.patch + - 0084-Detail-Remove-pre-2.6-code-for-printing-info-on-rebu.patch + - 0085-Assemble-Remove-obsolete-test-for-kernels-older-than.patch + - 0086-Detail-Fixup-ugly-if-foo-abuse.patch + - 0087-Query-Handle-error-returned-by-fstat.patch + - 0088-Query-Use-sysfs-to-obtain-data-if-possible.patch + - 0089-sysfs-Parse-array_state-in-sysfs_read.patch + - 0090-util-Introduce-md_array_active-helper.patch + - 0091-maps-Use-keyvalue-for-null-terminator-to-indicate-un.patch + - 0092-util-Get-rid-of-unused-enough_fd.patch + - 0093-mdadm-retire-mdassemble-in-make-everything.patch + - 0094-Query-Quiet-gcc-since-it-cannot-know-errno-0-in-this.patch + - 0095-Makefile-Default-to-O2-optimization.patch + - 0096-maps-Simplify-implementation-of-map_name.patch + - 0097-Don-t-use-UnSet-with-consistency_policy.patch + - 0098-Detail-determine-array-state-from-sysfs.patch + - 0099-Detail-Respect-code-lines-are-80-character-wide.patch + - 0100-Detail-Reinstate-support-for-not-having-sysfs.patch + - 0101-Incremental-Use-md_array_active-where-applicable.patch + - 0102-Incremental-Cleanup-some-if-statement-spaghetti.patch + - 0103-Create-tell-udev-md-device-is-not-ready-when-first-c.patch + - 0104-Incremental-Use-md_array_active-to-determine-state-o.patch + - 0105-Manage-Manage_ro-Use-md_array_active.patch + - 0106-IMSM-Initialize-my_vol_raid_dev_num-during-vol-creat.patch + - 0107-Grow-Grow_continue_command-Avoid-aliasing-array-vari.patch + - 0108-change-back-0644-permission-for-Grow.c.patch + - 0109-util-md_array_valid-Introduce-md_array_valid-helper.patch + - 0110-kernel-patch-Remove-obsolete-kernel-patches-against-.patch + - 0111-mdassemble-Kill-off-the-last-remains.patch + - 0112-mdadm-util-unify-fstat-checking-blkdev-into-function.patch + - 0113-mdadm-util-unify-stat-checking-blkdev-into-function.patch + - 0114-Fix-typo-in-new-udev-rule.patch + - 0115-Incremental-return-is-not-a-function.patch + - 0116-sysfs-sysfs_read-Count-active_disks-and-failed_disks.patch + - 0117-container_members_max_degradation-Switch-to-using-sy.patch + - 0118-IncrementalScan-Use-md_array_active-instead-of-md_ge.patch + - 0119-Mention-endian-in-documentation-for-update-byte-orde.patch + - 0120-Monitor-Use-md_array_active-instead-of-manually-fidd.patch + - 0121-Monitor-Code-is-80-characters-per-line.patch + - 0122-mdadm-md.4-set-page-length-as-1000-to-avoid-warnings.patch + - 0123-Allow-more-spare-selection-criteria.patch + - 0124-Add-sector-size-as-spare-selection-criterion.patch + - 0125-Monitor-check_array-Centralize-exit-path.patch + - 0126-Monitor-check_array-Reduce-duplicated-error-handling.patch + - 0127-Monitor-check_array-Declate-mdinfo-instance-globally.patch + - 0128-Monitor-check_array-Read-sysfs-entry-earlier.patch + - 0129-Monitor-check_array-Obtain-RAID-level-from-syfs.patch + - 0130-Monitor-check_array-Get-failed_disks-from-sysfs.patch + - 0131-Monitor-check_array-Get-array_disks-from-sysfs.patch + - 0132-Monitor-check_array-Get-nr_disks-active_disks-and-sp.patch + - 0133-sysfs-sysfs_read-Count-working_disks.patch + - 0134-Monitor-check_array-Use-working_disks-from-sysfs.patch + - 0135-retire-the-APIs-that-driver-no-longer-supports.patch + - 0136-Monitor-Not-much-point-declaring-mdlist-in-both-fork.patch + - 0137-Monitor-mailfrom-is-initialized-correctly.patch + - 0138-Monitor-Fixup-a-pile-of-whitespace-issues.patch + - 0139-mdadm-Uninitialized-variable-rdev.patch + - 0140-super-ddf-sysfs_read-takes-a-pointer-as-device-name-.patch + - 0141-mdadm-Fixup-a-large-number-of-bad-formatting-of-logi.patch + - 0142-mdadm-Fixup-more-broken-logical-operator-formatting.patch + - 0143-mdadm-Fix-broken-formatting.patch + - 0144-mdadm-Fixup-broken-formatting.patch + - 0145-Detail-don-t-exit-if-ioctl-has-been-successful.patch + - 0146-super1-fix-sb-max_dev-when-adding-a-new-disk-in-line.patch + - 0147-md_u-Remove-unused-ioctl-declaration-of-START_ARRAY.patch + - 0148-Get-failed-disk-count-from-array-state.patch + - 0149-Monitor-don-t-assume-mdadm-parameter-is-a-block-devi.patch + - 0150-super1-Always-round-data-offset-to-1M.patch + - 0151-mdadm-r5cache-allow-adding-journal-to-array-without-.patch + - 0152-udev-rules-introduce-rules-for-cluster-md-to-confirm.patch + - 0153-Detail-correct-output-for-active-arrays.patch + - 0154-imsm-rebuild-from-2-disk-RAID10.patch + - 0155-Error-messages-should-end-with-a-newline-character.patch + - 0156-Use-correct-syntax-for-passing-DEVLINKS-to-mdadm-fro.patch + - 0157-super1-only-set-clustered-flag-when-bitmap-is-presen.patch + - 0158-Don-t-use-exit-ERANGE.patch + - 0159-Monitor-containers-don-t-have-the-same-sysfs-propert.patch + - 0160-Monitor-Include-containers-in-spare-migration.patch + - 0161-Detail-differentiate-between-container-and-inactive-.patch + - 0162-mdadm-install-two-more-udev-rules-in-mdadm.spec.patch + - 0163-mdadm-set-journal_clean-after-scanning-all-disks.patch + - 0164-mdadm-bitmap-examine-bitmap-failed-when-bitmap-is-ex.patch + - 0165-mdopen-call-modprobe-md_mod-if-it-might-be-needed.patch + - 0166-lib-devid2kname-should-take-a-dev_t.patch + - 0167-sysfs_init_dev-take-a-dev_t-argument.patch + - 0168-Manage_subdevs-Use-a-dev_t.patch + - 0169-util-Code-is-80-characters-wide.patch + - 0170-Close-mdfd-before-returning-main-function.patch + - 0171-Grow-stop-previous-reshape-process-first.patch + - 0172-imsm-New-disk-controller-domains.patch + - 0173-Monitor-Check-redundancy-for-arrays.patch + - 0174-mdadm-grow-Component-size-must-be-larger-than-chunk-.patch + - 0175-mdadm-manpage-disable-bitmap_resize-for-external-fil.patch + - 0176-mdadm-fixes-some-trivial-typos-in-comments.patch + - 0177-Don-t-abort-starting-the-array-if-kernel-does-not-su.patch + - 0178-super1-Add-support-for-multiple-ppls.patch + - 0179-imsm-Add-support-for-multiple-ppls.patch + - 0180-imsm-validate-multiple-ppls-during-assemble.patch + - 0181-Zeroout-whole-ppl-space-during-creation-force-assemb.patch + - 0182-imsm-switch-to-multiple-ppls-automatically-during-as.patch + - 0183-Grow-fix-switching-on-PPL-during-recovery.patch + - 0184-imsm-don-t-skip-resync-when-an-invalid-ppl-header-is.patch + - 0185-imsm-Write-empty-PPL-header-if-assembling-regular-cl.patch + - 0186-imsm-always-do-ppl-recovery-when-starting-a-rebuildi.patch + - 0187-imsm-use-correct-map-when-validating-ppl.patch + - 0188-imsm-write-initial-ppl-on-a-disk-added-for-rebuild.patch + - 0189-Grow-Use-all-80-characters.patch + - 0190-imsm-Set-disk-slot-number.patch + - 0191-mdmon-get-safe-mode-delay-file-descriptor-early.patch + - 0192-mdadm-mdstat-fixup-a-number-of-broken-formatting.patch + - 0193-mdadm-mdstat-correct-the-strncmp-number-4-as-6.patch + - 0194-mdcheck-add-some-logging.patch + - 0195-mdcheck-improve-cleanup.patch + - 0197-mdadm-grow-adding-a-test-to-ensure-resize-was-requir.patch + - 0198-mdadm-mdopen-create-new-function-create_named_array-.patch + - 0199-systemd-add-I-to-description-of-mdadm-last-resort-se.patch + - 0200-Incremental-Use-validate_geometry-instead-of-avail_s.patch + - 0201-imsm-fix-reading-scsi-serial.patch + - 0202-To-support-clustered-raid10.patch + - 0203-imsm-More-precise-message-when-spanned-raid-is-creat.patch + - 0204-sysfs-include-faulty-drive-in-disk-count.patch + - 0205-Monitor-msg-Don-t-print-error-message-if-mdmon-doesn.patch + - 0206-imsm-continue-resync-on-3-disk-RAID10.patch + - 0207-managemon-Don-t-add-disk-to-the-array-after-it-has-s.patch + - 0208-mdadm-grow-correct-the-s-size-1-to-make-max-work.patch + - 0209-policy.c-Avoid-to-take-spare-without-defined-domain-.patch + - 0210-mdadm-allow-clustered-raid10-to-be-created-with-defa.patch + +------------------------------------------------------------------- +Fri Aug 3 18:39:09 UTC 2018 - colyli@suse.com + +- Add missing patches which exist in SLE12-SP3 and should be in + SLE15 too, + - mdadm: improve the dlm locking mechanism for clustered raid + (bsc#1049126) + 0218-mdadm-improve-the-dlm-locking-mechanism-for-clustere.patch + - Assemble: provide protection when clustered raid do assemble + (bsc#1049126) + 0219-Assemble-provide-protection-when-clustered-raid-do-a.patch + - Assemble: cleanup the failure path + (bsc#1049126) + 0220-Assemble-cleanup-the-failure-path.patch + - Assemble: remove the protection when clustered raid do assemble + (bsc#1101348) + 0221-Assemble-remove-the-protection-when-clustered-raid-d.patch + - 1001-display-timeout-status.patch + +------------------------------------------------------------------- +Fri Aug 3 15:55:31 UTC 2018 - colyli@suse.com + +- mdadm.spec + Change %doc to %license for COPYING file, which was warned during + 'osc ci'. + +------------------------------------------------------------------- +Fri Aug 3 13:04:18 UTC 2018 - colyli@suse.com + +- imsm: change reserved space to 4MB + (bsc#1101110) + 0212-imsm-change-reserved-space-to-4MB.patch +- imsm: add functions to get and set imsm dev size + (bsc#1101110) + 0213-imsm-add-functions-to-get-and-set-imsm-dev-size.patch +- imsm: pass already existing map to imsm_num_data_members + (bsc#1101110) + 0214-imsm-pass-already-existing-map-to-imsm_num_data_memb.patch +- imsm: do not use blocks_per_member in array size calculations + (bsc#1101110) + 0215-imsm-do-not-use-blocks_per_member-in-array-size-calc.patch +- imsm: correct num_data_stripes in metadata map for migration + (bsc#1101110) + 0216-imsm-correct-num_data_stripes-in-metadata-map-for-mi.patch +- mdadm/grow: correct size and chunk_size casting + (bsc#1095177) + 0217-mdadm-grow-correct-size-and-chunk_size-casting.patch + +------------------------------------------------------------------- +Wed Jun 27 16:01:33 UTC 2018 - colyli@suse.com + +- Assemble: prevent segfault with faulty "best" devices + (bsc#1082766, bsc#1095729) + 0211-Assemble-prevent-segfault-with-faulty-best-devices.patch + +------------------------------------------------------------------- +Mon Mar 5 03:25:18 UTC 2018 - gqjiang@suse.com + +- mdadm: allow clustered raid10 to be created with default layout + (bsc#1083881) + 0210-mdadm-allow-clustered-raid10-to-be-created-with-defa.patch + +------------------------------------------------------------------- +Sat Feb 10 14:34:01 UTC 2018 - colyli@suse.com + +- policy.c: Avoid to take spare without defined domain by imsm + (bsc#1076588) + 0209-policy.c-Avoid-to-take-spare-without-defined-domain-.patch + +------------------------------------------------------------------- +Tue Jan 9 03:30:48 UTC 2018 - zlliu@suse.com + +- 0208-mdadm-grow-correct-the-s-size-1-to-make-max-work.patch + (bsc#1074949) + +------------------------------------------------------------------- +Wed Jan 3 14:44:06 UTC 2018 - colyli@suse.com + +- 0207-managemon-Don-t-add-disk-to-the-array-after-it-has-s.patch + (bsc#1073862) + +------------------------------------------------------------------- +Mon Dec 4 17:11:14 UTC 2017 - colyli@suse.com + +- Update mdadm for SLE15, for bug fixes and new feature enhancement +- 1000-The-mdcheck-script-now-adds-messages-to-the-system.patch is + removed because upstream has similar fix with almost identical + funcationality. +- The following patches are not deleted indeed, they are renamed + and added into all other new-added patches with different perfix + numbers, + 0038-Create-Fixup-bad-placement-of-logical-in-multi-line-.patch + 0039-Create-Fixup-various-whitespace-issues.patch + 0040-mdadm.c-fix-compile-warning-mdfd-is-uninitialized.patch + 0041-mdopen-use-parameters-new_array-to-create-arrays-whe.patch + 0042-mdadm-manpage-update-manpage-for-readonly-parameter.patch + 0043-mdadm-manpage-clustered-arrays-don-t-support-array-s.patch + 0044-maps-Terminate-modes-map-correctly.patch + 0045-Grow_continue_command-ensure-content-is-properly-ini.patch + 0046-systemd-mdadm-last-resort-use-ConditionPathExists-in.patch + 0047-Detail-ensure-export-names-are-acceptable-as-shell-v.patch + 0048-Grow-set-component-size-prior-to-array-size.patch + 0049-Grow-don-t-allow-to-enable-PPL-when-reshape-is-in-pr.patch + 0050-Grow-don-t-allow-array-geometry-change-with-ppl-enab.patch + 0051-IMSM-Correct-examine-output-for-4k-disks.patch + 0052-imsm-allow-drives-in-a-container-regardless-of-secto.patch + 0053-imsm-allocate-buffer-to-support-maximum-sector-size.patch + 0054-imsm-don-t-allow-disks-with-different-sector-size-in.patch + 0055-Allow-more-spare-selection-criteria.patch + 0056-Add-sector-size-as-spare-selection-criterion.patch + 0057-super1-fix-sb-max_dev-when-adding-a-new-disk-in-line.patch + 0058-super1-only-set-clustered-flag-when-bitmap-is-presen.patch + 0059-To-support-clustered-raid10.patch + 0060-udev-rules-introduce-rules-for-cluster-md-to-confirm.patch +- The following patche set includes the above renamed patches, + they have bug fixes for bsc#1068030, bsc#1069165, bsc#1069167, + and some other fixes and enhancement for raid5 ppl, imsm, and + general mdadm code, + 0038-mdadm-Create-declaring-an-existing-struct-within-sam.patch + 0039-Create-Fixup-bad-placement-of-logical-in-multi-line-.patch + 0040-Create-Fixup-various-whitespace-issues.patch + 0041-mdadm.c-fix-compile-warning-mdfd-is-uninitialized.patch + 0042-mdopen-use-parameters-new_array-to-create-arrays-whe.patch + 0043-mdadm-manpage-update-manpage-for-readonly-parameter.patch + 0044-mdadm-manpage-clustered-arrays-don-t-support-array-s.patch + 0045-maps-Terminate-modes-map-correctly.patch + 0046-Grow_continue_command-ensure-content-is-properly-ini.patch + 0047-systemd-mdadm-last-resort-use-ConditionPathExists-in.patch + 0048-Detail-ensure-export-names-are-acceptable-as-shell-v.patch + 0049-Grow-set-component-size-prior-to-array-size.patch + 0050-Grow-don-t-allow-to-enable-PPL-when-reshape-is-in-pr.patch + 0051-Grow-don-t-allow-array-geometry-change-with-ppl-enab.patch + 0052-IMSM-Correct-examine-output-for-4k-disks.patch + 0053-imsm-allow-drives-in-a-container-regardless-of-secto.patch + 0054-imsm-allocate-buffer-to-support-maximum-sector-size.patch + 0055-imsm-don-t-allow-disks-with-different-sector-size-in.patch + 0056-mdadm-mdmon-deleted-the-abort_reshape-never-invoked.patch + 0057-util-Introduce-md_get_array_info.patch + 0058-Incremental-Remove-redundant-call-for-GET_ARRAY_INFO.patch + 0059-util-Introduce-md_get_disk_info.patch + 0060-util-Introduce-md_set_array_info.patch + 0061-md_u-Remove-some-unused-ioctl-declarations.patch + 0062-mdadm-grow-reshape-would-be-stuck-from-raid1-to-raid.patch + 0063-sysfs-Use-the-presence-of-sys-block-dev-md-as-indica.patch + 0064-sysfs-Make-sysfs_init-return-an-error-code.patch + 0065-util-must_be_container-Use-sysfs_read-GET_VERSION-to.patch + 0066-util-set_array_info-Simplify-code-since-md_get_versi.patch + 0067-Assemble-Assemble-Stop-checking-kernel-md-driver-ver.patch + 0068-Build-Stop-bothering-about-supporting-md-driver-olde.patch + 0069-Grow-Stop-bothering-about-md-driver-versions-older-t.patch + 0070-Detail-Stop-bothering-about-md-drivers-older-than-0..patch + 0071-Create-Remove-all-attemps-to-handle-md-driver-older-.patch + 0072-Manage-Remove-all-references-to-md_get_version.patch + 0073-Query-Remove-all-references-to-md_get_version.patch + 0074-bitmap-Remove-use-of-md_get_version.patch + 0075-mdmon-Stop-bothering-about-md_get_version.patch + 0076-mdopen-open_mddev-Use-md_get_array_info-to-determine.patch + 0077-mdassemble-Use-md_get_array_info-to-check-for-valid-.patch + 0078-Assemble-Assemble-Get-rid-of-last-use-of-md_get_vers.patch + 0079-util-Finally-kill-off-md_get_version.patch + 0080-mdadm-Fail-for-kernels-older-than-2.6.15.patch + 0081-Revert-mdadm-grow-reshape-would-be-stuck-from-raid1-.patch + 0082-Retire-mdassemble.patch + 0083-super1-Clean-up-various-style-abuses.patch + 0084-Detail-Remove-pre-2.6-code-for-printing-info-on-rebu.patch + 0085-Assemble-Remove-obsolete-test-for-kernels-older-than.patch + 0086-Detail-Fixup-ugly-if-foo-abuse.patch + 0087-Query-Handle-error-returned-by-fstat.patch + 0088-Query-Use-sysfs-to-obtain-data-if-possible.patch + 0089-sysfs-Parse-array_state-in-sysfs_read.patch + 0090-util-Introduce-md_array_active-helper.patch + 0091-maps-Use-keyvalue-for-null-terminator-to-indicate-un.patch + 0092-util-Get-rid-of-unused-enough_fd.patch + 0093-mdadm-retire-mdassemble-in-make-everything.patch + 0094-Query-Quiet-gcc-since-it-cannot-know-errno-0-in-this.patch + 0095-Makefile-Default-to-O2-optimization.patch + 0096-maps-Simplify-implementation-of-map_name.patch + 0097-Don-t-use-UnSet-with-consistency_policy.patch + 0098-Detail-determine-array-state-from-sysfs.patch + 0099-Detail-Respect-code-lines-are-80-character-wide.patch + 0100-Detail-Reinstate-support-for-not-having-sysfs.patch + 0101-Incremental-Use-md_array_active-where-applicable.patch + 0102-Incremental-Cleanup-some-if-statement-spaghetti.patch + 0103-Create-tell-udev-md-device-is-not-ready-when-first-c.patch + 0104-Incremental-Use-md_array_active-to-determine-state-o.patch + 0105-Manage-Manage_ro-Use-md_array_active.patch + 0106-IMSM-Initialize-my_vol_raid_dev_num-during-vol-creat.patch + 0107-Grow-Grow_continue_command-Avoid-aliasing-array-vari.patch + 0108-change-back-0644-permission-for-Grow.c.patch + 0109-util-md_array_valid-Introduce-md_array_valid-helper.patch + 0110-kernel-patch-Remove-obsolete-kernel-patches-against-.patch + 0111-mdassemble-Kill-off-the-last-remains.patch + 0112-mdadm-util-unify-fstat-checking-blkdev-into-function.patch + 0113-mdadm-util-unify-stat-checking-blkdev-into-function.patch + 0114-Fix-typo-in-new-udev-rule.patch + 0115-Incremental-return-is-not-a-function.patch + 0116-sysfs-sysfs_read-Count-active_disks-and-failed_disks.patch + 0117-container_members_max_degradation-Switch-to-using-sy.patch + 0118-IncrementalScan-Use-md_array_active-instead-of-md_ge.patch + 0119-Mention-endian-in-documentation-for-update-byte-orde.patch + 0120-Monitor-Use-md_array_active-instead-of-manually-fidd.patch + 0121-Monitor-Code-is-80-characters-per-line.patch + 0122-mdadm-md.4-set-page-length-as-1000-to-avoid-warnings.patch + 0123-Allow-more-spare-selection-criteria.patch + 0124-Add-sector-size-as-spare-selection-criterion.patch + 0125-Monitor-check_array-Centralize-exit-path.patch + 0126-Monitor-check_array-Reduce-duplicated-error-handling.patch + 0127-Monitor-check_array-Declate-mdinfo-instance-globally.patch + 0128-Monitor-check_array-Read-sysfs-entry-earlier.patch + 0129-Monitor-check_array-Obtain-RAID-level-from-syfs.patch + 0130-Monitor-check_array-Get-failed_disks-from-sysfs.patch + 0131-Monitor-check_array-Get-array_disks-from-sysfs.patch + 0132-Monitor-check_array-Get-nr_disks-active_disks-and-sp.patch + 0133-sysfs-sysfs_read-Count-working_disks.patch + 0134-Monitor-check_array-Use-working_disks-from-sysfs.patch + 0135-retire-the-APIs-that-driver-no-longer-supports.patch + 0136-Monitor-Not-much-point-declaring-mdlist-in-both-fork.patch + 0137-Monitor-mailfrom-is-initialized-correctly.patch + 0138-Monitor-Fixup-a-pile-of-whitespace-issues.patch + 0139-mdadm-Uninitialized-variable-rdev.patch + 0140-super-ddf-sysfs_read-takes-a-pointer-as-device-name-.patch + 0141-mdadm-Fixup-a-large-number-of-bad-formatting-of-logi.patch + 0142-mdadm-Fixup-more-broken-logical-operator-formatting.patch + 0143-mdadm-Fix-broken-formatting.patch + 0144-mdadm-Fixup-broken-formatting.patch + 0145-Detail-don-t-exit-if-ioctl-has-been-successful.patch + 0146-super1-fix-sb-max_dev-when-adding-a-new-disk-in-line.patch + 0147-md_u-Remove-unused-ioctl-declaration-of-START_ARRAY.patch + 0148-Get-failed-disk-count-from-array-state.patch + 0149-Monitor-don-t-assume-mdadm-parameter-is-a-block-devi.patch + 0150-super1-Always-round-data-offset-to-1M.patch + 0151-mdadm-r5cache-allow-adding-journal-to-array-without-.patch + 0152-udev-rules-introduce-rules-for-cluster-md-to-confirm.patch + 0153-Detail-correct-output-for-active-arrays.patch + 0154-imsm-rebuild-from-2-disk-RAID10.patch (bsc#1069165) + 0155-Error-messages-should-end-with-a-newline-character.patch + 0156-Use-correct-syntax-for-passing-DEVLINKS-to-mdadm-fro.patch + 0157-super1-only-set-clustered-flag-when-bitmap-is-presen.patch + 0158-Don-t-use-exit-ERANGE.patch + 0159-Monitor-containers-don-t-have-the-same-sysfs-propert.patch + 0160-Monitor-Include-containers-in-spare-migration.patch + 0161-Detail-differentiate-between-container-and-inactive-.patch + 0162-mdadm-install-two-more-udev-rules-in-mdadm.spec.patch + 0163-mdadm-set-journal_clean-after-scanning-all-disks.patch + 0164-mdadm-bitmap-examine-bitmap-failed-when-bitmap-is-ex.patch + 0165-mdopen-call-modprobe-md_mod-if-it-might-be-needed.patch + 0166-lib-devid2kname-should-take-a-dev_t.patch + 0167-sysfs_init_dev-take-a-dev_t-argument.patch + 0168-Manage_subdevs-Use-a-dev_t.patch + 0169-util-Code-is-80-characters-wide.patch + 0170-Close-mdfd-before-returning-main-function.patch + 0171-Grow-stop-previous-reshape-process-first.patch + 0172-imsm-New-disk-controller-domains.patch + 0173-Monitor-Check-redundancy-for-arrays.patch + 0174-mdadm-grow-Component-size-must-be-larger-than-chunk-.patch + 0175-mdadm-manpage-disable-bitmap_resize-for-external-fil.patch + 0176-mdadm-fixes-some-trivial-typos-in-comments.patch + (The following 12 patches are specifically for bsc#1068030) + 0177-Don-t-abort-starting-the-array-if-kernel-does-not-su.patch + 0178-super1-Add-support-for-multiple-ppls.patch + 0179-imsm-Add-support-for-multiple-ppls.patch + 0180-imsm-validate-multiple-ppls-during-assemble.patch + 0181-Zeroout-whole-ppl-space-during-creation-force-assemb.patch + 0182-imsm-switch-to-multiple-ppls-automatically-during-as.patch + 0183-Grow-fix-switching-on-PPL-during-recovery.patch + 0184-imsm-don-t-skip-resync-when-an-invalid-ppl-header-is.patch + 0185-imsm-Write-empty-PPL-header-if-assembling-regular-cl.patch + 0186-imsm-always-do-ppl-recovery-when-starting-a-rebuildi.patch + 0187-imsm-use-correct-map-when-validating-ppl.patch + 0188-imsm-write-initial-ppl-on-a-disk-added-for-rebuild.patch + 0189-Grow-Use-all-80-characters.patch + 0190-imsm-Set-disk-slot-number.patch + (The following 1 patch is specifically for bsc#1069167) + 0191-mdmon-get-safe-mode-delay-file-descriptor-early.patch + 0192-mdadm-mdstat-fixup-a-number-of-broken-formatting.patch + 0193-mdadm-mdstat-correct-the-strncmp-number-4-as-6.patch + 0194-mdcheck-add-some-logging.patch + 0195-mdcheck-improve-cleanup.patch + 0196-Move-mdadm_env.sh-out-of-usr-lib-systemd.patch + 0197-mdadm-grow-adding-a-test-to-ensure-resize-was-requir.patch + 0198-mdadm-mdopen-create-new-function-create_named_array-.patch + 0199-systemd-add-I-to-description-of-mdadm-last-resort-se.patch + 0200-Incremental-Use-validate_geometry-instead-of-avail_s.patch + 0201-imsm-fix-reading-scsi-serial.patch + 0202-To-support-clustered-raid10.patch + 0203-imsm-More-precise-message-when-spanned-raid-is-creat.patch + 0204-sysfs-include-faulty-drive-in-disk-count.patch + 0205-Monitor-msg-Don-t-print-error-message-if-mdmon-doesn.patch + 0206-imsm-continue-resync-on-3-disk-RAID10.patch + +------------------------------------------------------------------- +Fri Nov 24 01:26:09 UTC 2017 - gqjiang@suse.com + +- Add udev rules for cluster-md to confirm device (fate#316335) + 0060-udev-rules-introduce-rules-for-cluster-md-to-confirm.patch + +------------------------------------------------------------------- +Thu Nov 23 13:40:30 UTC 2017 - rbrown@suse.com + +- Replace references to /var/adm/fillup-templates with new + %_fillupdir macro (boo#1069468) + +------------------------------------------------------------------- +Wed Nov 15 01:27:06 UTC 2017 - gqjiang@suse.com + +- Add one mdadm patch to support clustered raid10 (fate#323171) + 0059-To-support-clustered-raid10.patch + +------------------------------------------------------------------- +Mon Aug 21 16:44:54 UTC 2017 - colyli@suse.com + +- SLE15 continues to use mdadm-4.0, synchronize mdadm package from + SLE12-SP3 to SLE15, re-order all patches. + +- Rename the following patches, they are deleted and re-add in next + part of patches + 0001-Generic-support-for-consistency-policy-and-PPL.patch + 0002-Detail-show-consistency-policy.patch + 0002-The-mdcheck-script-now-adds-messages-to-the-system.patch + 0003-imsm-PPL-support.patch + 0004-super1-PPL-support.patch + 0005-Add-ppl-and-no-ppl-options-for-update.patch + 0006-Grow-support-consistency-policy-change.patch + 0007-udev-md-raid-assembly.rules-Skip-non-ready-devices.patch + 0008-Retry-HOT_REMOVE_DISK-a-few-times.patch + 0009-Introduce-sys_hot_remove_disk.patch + 0010-Add-force-flag-to-hot_remove_disk.patch + 0011-Detail-handle-non-existent-arrays-better.patch + +- Synchronize patches from mdadm of SLE12-SP3, the above renamed + patches are re-add here, + 0001-Makefile-Fix-date-to-be-output-in-ISO-format.patch + 0002-imsm-fix-missing-error-message-during-migration.patch + 0003-Fix-oddity-where-mdadm-did-not-recognise-a-relative-.patch + 0004-mdadm-check-the-nodes-when-operate-clustered-array.patch + 0005-examine-tidy-up-some-code.patch + 0006-mdadm-add-man-page-for-symlinks.patch + 0007-mdadm-add-checking-clustered-bitmap-in-assemble-mode.patch + 0008-mdadm-Add-Wimplicit-fallthrough-0-in-Makefile.patch + 0009-mdadm-Specify-enough-length-when-write-to-buffer.patch + 0010-mdadm-it-doesn-t-make-sense-to-set-bitmap-twice.patch + 0011-mdadm-Monitor-Fix-NULL-pointer-dereference-when-stat.patch + 0012-Replace-snprintf-with-strncpy-at-some-places-to-avoi.patch + 0013-mdadm-Forced-type-conversion-to-avoid-truncation.patch + 0014-super1-ignore-failfast-flag-for-setting-device-role.patch + 0015-mdadm-bitmap-fixed-typos-in-comments-of-bitmap.h.patch + 0016-udev-md-raid-assembly.rules-Skip-non-ready-devices.patch + 0017-Retry-HOT_REMOVE_DISK-a-few-times.patch + 0018-mdadm-Build-check-the-level-parameter-when-build-new.patch + 0019-Introduce-sys_hot_remove_disk.patch + 0020-Add-force-flag-to-hot_remove_disk.patch + 0021-Detail-handle-non-existent-arrays-better.patch + 0022-Generic-support-for-consistency-policy-and-PPL.patch + 0023-Detail-show-consistency-policy.patch + 0024-imsm-PPL-support.patch + 0025-super1-PPL-support.patch + 0026-Add-ppl-and-no-ppl-options-for-update.patch + 0027-Grow-support-consistency-policy-change.patch + 0028-mdadm.h-struct-mdinfo-reorganize-ppl-elements-for-be.patch + 0029-super1-replace-hard-coded-values-with-bit-definition.patch + 0030-mdadm-Clean-up-some-ugly-multiple-actions-on-single-.patch + 0031-mdadm-Fixup-a-number-of-whitespace-inconsistency-cas.patch + 0032-util-Cosmetic-changes.patch + 0033-Grow-Fixup-a-pile-of-cosmetic-issues.patch + 0034-Grow-Remove-unnecessary-optimization.patch + 0035-Grow-Do-not-shadow-an-existing-variable.patch + 0036-imsm-use-rounded-size-for-metadata-initialization.patch + 0037-mdadm.c-fix-compile-error-switch-condition-has-boole.patch + 0038-Create-Fixup-bad-placement-of-logical-in-multi-line-.patch + 0039-Create-Fixup-various-whitespace-issues.patch + 0040-mdadm.c-fix-compile-warning-mdfd-is-uninitialized.patch + 0041-mdopen-use-parameters-new_array-to-create-arrays-whe.patch + 0042-mdadm-manpage-update-manpage-for-readonly-parameter.patch + 0043-mdadm-manpage-clustered-arrays-don-t-support-array-s.patch + 0044-maps-Terminate-modes-map-correctly.patch + 0045-Grow_continue_command-ensure-content-is-properly-ini.patch + 0046-systemd-mdadm-last-resort-use-ConditionPathExists-in.patch + 0047-Detail-ensure-export-names-are-acceptable-as-shell-v.patch + 0048-Grow-set-component-size-prior-to-array-size.patch + 0049-Grow-don-t-allow-to-enable-PPL-when-reshape-is-in-pr.patch + 0050-Grow-don-t-allow-array-geometry-change-with-ppl-enab.patch + 0051-IMSM-Correct-examine-output-for-4k-disks.patch + 0052-imsm-allow-drives-in-a-container-regardless-of-secto.patch + 0053-imsm-allocate-buffer-to-support-maximum-sector-size.patch + 0054-imsm-don-t-allow-disks-with-different-sector-size-in.patch + 0055-Allow-more-spare-selection-criteria.patch + 0056-Add-sector-size-as-spare-selection-criterion.patch + 0057-super1-fix-sb-max_dev-when-adding-a-new-disk-in-line.patch + 0058-super1-only-set-clustered-flag-when-bitmap-is-presen.patch + 1000-The-mdcheck-script-now-adds-messages-to-the-system.patch + +------------------------------------------------------------------- +Fri Mar 24 04:10:22 UTC 2017 - nfbrown@suse.com + +- New upstream release 4.0 + Multiple bugfixes and various enhancements + including IMSM support for bad blocks and 4K block devices. + (FATE#321941) + +- DELETE 0001-super1-Clear-memory-allocated-for-superblock-bitmap-.patch + this was included upstream + +- 0001-Generic-support-for-consistency-policy-and-PPL.patch +- 0002-Detail-show-consistency-policy.patch +- 0003-imsm-PPL-support.patch +- 0004-super1-PPL-support.patch +- 0005-Add-ppl-and-no-ppl-options-for-update.patch +- 0006-Grow-support-consistency-policy-change.patch + Add support for Partial Parity Logs + (FATE#321941) + +- 0007-udev-md-raid-assembly.rules-Skip-non-ready-devices.patch + (bsc#956236) + +- 0008-Retry-HOT_REMOVE_DISK-a-few-times.patch + (bsc#808647) +- 0009-Introduce-sys_hot_remove_disk.patch + (bsc#974154) +- 0010-Add-force-flag-to-hot_remove_disk.patch + (bsc#808647) +- 0011-Detail-handle-non-existent-arrays-better.patch + (bsc#966773) + +------------------------------------------------------------------- +Sun May 22 15:01:13 UTC 2016 - bill@merriam.net + +- Added 0002-The-mdcheck-script-now-adds-messages-to-the-system.patch + The mdcheck bash script now writes messages to the syslog about + progress with check. + +------------------------------------------------------------------- +Fri May 20 05:13:48 UTC 2016 - neilb@suse.com + +- Do not list XXX@.service files for anything but service_del_preun. + They cannot be restarted by systemctl as they are + just templates. They don't need to be restarted + at reinstall anyway. + (bsc#979749) + +------------------------------------------------------------------- +Wed May 4 04:56:42 UTC 2016 - neilb@suse.com + +- New upstream release mdadm-3.4 + Adds support for clustered-raid1 and journalled raid5 +- 0001-super1-Clear-memory-allocated-for-superblock-bitmap-.patch + Important upstream bugfix relating to uninialised memory. + +------------------------------------------------------------------- +Thu Dec 10 17:07:40 CET 2015 - tiwai@suse.de + +- Add missing pre-requres for initrd macros (boo#958562) + +------------------------------------------------------------------- +Mon Sep 14 13:21:33 UTC 2015 - dimstar@opensuse.org + +- Own %{_systemdshutdowndir} in case nothing else does. This + ensures build success even if systemd-mini does not own it + (happens in some versions of our package). + +------------------------------------------------------------------- +Mon Aug 31 11:43:43 UTC 2015 - dimstar@opensuse.org + +- Do not BuildRequire systemd: it conflicts with systemd-mini, + pulled in by systemd-mini-devel (due to BuildRequires: + pkgconfig(systemd)). The reason systemd was added as a + buildrequires was for 'something' to onw + /usr/lib/systemd/system-shutdown/; systemd-mini does that also + for us. + +------------------------------------------------------------------- +Mon Aug 3 06:25:56 UTC 2015 - nfbrown@suse.com + +- new upstream version 3.3.4. Important bugfix + to honour IMSM ROM settings when RAID is disabled. + (bsc#939748 bsc#937363) + +------------------------------------------------------------------- +Mon Jul 27 04:17:43 UTC 2015 - nfbrown@suse.com + +- new upstream version 3.3.3. Lots of bug fixes, particular + "mdadm --assemble --force" would often not do the right thing + for RAID5. + +- 0001-Grow-Do-not-try-to-restart-if-reshape-is-running.patch + 0001-Grow-fix-removal-of-line-in-wrong-case.patch + 0001-IMSM-Add-warning-message-when-assemble-spanned-conta.patch + 0001-Makefile-install-mdadm-grow-continue-.service.patch + mdcheck-careful.patch + mdcheck-no-devices.fix + + All removed as now included upstream. + + +------------------------------------------------------------------- +Mon Jul 13 09:19:36 UTC 2015 - werner@suse.de + +- Make it build, that is build-require pkgconfig of udev and the + package systemd as this one is the owner of the directory + /usr/lib/systemd/system-shutdown + +------------------------------------------------------------------- +Mon Mar 2 20:33:12 UTC 2015 - mgorse@suse.com + +- 0001-IMSM-Add-warning-message-when-assemble-spanned-conta.patch + (bnc#882634) + +- 0001-Grow-Do-not-try-to-restart-if-reshape-is-running.patch + (bnc#887773) + +------------------------------------------------------------------- +Tue Feb 3 23:40:32 UTC 2015 - nfbrown@suse.com + +- mdcheck-careful.patch + Be careful about reading all output of "mdadm --detail --export" + as shell commands - it isn't quoted. + (bnc#910500) + +------------------------------------------------------------------- +Mon Nov 3 00:23:45 UTC 2014 - nfbrown@suse.com + +- mdcheck-no-devices.fix + mdcheck mustn't report an error if not md devices + exist (bnc#903051) + +------------------------------------------------------------------- +Mon Sep 29 01:23:13 UTC 2014 - nfbrown@suse.com + +- cron.d.mdadm: add correct PATH setting + (bnc#898239) + +------------------------------------------------------------------- +Tue Sep 16 01:04:36 UTC 2014 - nfbrown@suse.com + +- Add cron job to run 'mdcheck' regularly to + verify all md arrays. (bnc#869261) + +------------------------------------------------------------------- +Fri Jul 25 11:48:12 UTC 2014 - p.drouand@gmail.com + +- Remove insserv dependency; the package has been moved to systemd + init system +- Remove redundant %clean section + +------------------------------------------------------------------- +Mon Jul 7 01:52:35 UTC 2014 - nfbrown@suse.com + +- Remove mkinitrd scripts again. "libguestfs" now + includes them so "guestfs" does not need us to. + (bnc#883873) + +------------------------------------------------------------------- +Thu Jun 26 03:08:15 UTC 2014 - nfbrown@suse.com + +- 0001-Grow-fix-removal-of-line-in-wrong-case.patch + (bnc#881530) + +------------------------------------------------------------------- +Thu Jun 26 02:54:05 UTC 2014 - nfbrown@suse.com + +- add mkinitrd scripts back in. They are needed by + "guestfs" + (bnc#883873) + +------------------------------------------------------------------- +Thu Jun 12 02:08:31 UTC 2014 - nfbrown@suse.com + +- mdadm.spec: change calling of mkinitrd to use the + %regenerate_initrd_{post,posttrans} macros to optimise + initrd regeneration. (bnc#881780) + +------------------------------------------------------------------- +Tue Jun 10 04:05:48 UTC 2014 - nfbrown@suse.com + +- new upstream release 3.3.1, incorporates all current patches + and includes assorted other minor fixes. +- 0001-Makefile-install-mdadm-grow-continue-.service.patch + make sure mdadm-grow-continue.service is installed properly. +- remove mkinitrd files, we now use dracut + +- Delete 0001-Assemble-allow-load_devices-to-change-the-st-which-i.patch +- Delete 0001-DDF-mark-missing-on-assembly-device-properly.patch +- Delete 0001-mdmon-.service-Change-type-of-process-start-up-to-fo.patch +- Delete 0001-systemd-various-fixes-for-boot-with-container-arrays.patch +- Delete 0002-Assemble-re-arrange-freeing-of-tst-in-load_devices.patch +- Delete 0002-DDF-guard-against-pdnum-being-negative.patch +- Delete 0003-Assemble-change-load_devices-to-return-most_recent-s.patch +- Delete 0003-DDF-fix-possible-mdmon-crash-when-updating-metadata.patch +- Delete 0003-Work-around-architectures-having-statfs.f_type-defin.patch +- Delete 0004-DDF-Don-t-fail-compare_super_ddf-due-to-re-configure.patch +- Delete 0004-DDF-report-seq-counter-as-events.patch +- Delete 0005-DDF-when-first-activating-an-array-record-any-missin.patch +- Delete Assembe-fix-bug-in-force_array-it-wasn-t-forcing-pro.patch +- Delete Assemble-Incremental-don-t-hold-O_EXCL-on-mddev-afte.patch +- Delete Assemble-avoid-infinite-loop-when-auto-assembling-pa.patch +- Delete DDF-add_to_super_ddf-be-careful-with-workspace_lba.patch +- Delete DDF-allow-for-possibility-that-there-is-no-secondary.patch +- Delete DDF-brief_examine_subarrays_ddf-print-array-name.patch +- Delete DDF-compare_super_ddf-fix-sequence-number-check.patch +- Delete DDF-factor-out-array-name-generation.patch +- Delete DDF-fix-detection-of-failed-devices-during-assembly.patch +- Delete DDF-handle-fake-RAIDs-with-changing-subarray-UUIDs.patch +- Delete DDF-really-ignore-DDF-metadata-on-partitions.patch +- Delete Grow-fix-problems-with-prematurely-aborting-of-resha.patch +- Delete IMSM-don-t-crash-when-creating-an-array-with-missing.patch +- Delete Incremental-add-export-handling.patch +- Delete Incremental-improve-support-for-DEVICE-based-restric.patch +- Delete Make-IRs-and-run-work-properly-for-containers.patch +- Delete Monitor-don-t-set-arrays-dirty-after-transition-to-r.patch +- Delete Monitor-write-meta-data-in-readonly-state-sometimes.patch +- Delete Restructure-assemble_container_content-and-improve-m.patch +- Delete config-set-auto_seen-after-processing-the-auto-line.patch +- Delete mdmon-.service-remove-over-ride-of-Standard-IO.patch +- Delete mdmon-don-t-complain-about-notifying-parent-when-the.patch +- Delete mdmon-honour-offroot-again.patch +- Delete mdmonitor +- Delete policy-NULL-path-isn-t-really-acceptable-use-the-dev.patch +- Delete systemd-mdadm-last-resort@.service +- Delete systemd-mdadm-last-resort@.timer +- Delete systemd-mdmon-set-IMSM_NO_PLATFORM-1.patch +- Delete udev-rules-try-mdadm-I-on-change-events.patch +- Delete udev-rules.degraded + +------------------------------------------------------------------- +Tue Apr 8 07:38:42 UTC 2014 - nfbrown@suse.com + +- 0001-systemd-various-fixes-for-boot-with-container-arrays.patch + various fixes to improve boot-from-DDF or IMSM + (bnc#866660) + +------------------------------------------------------------------- +Wed Apr 2 04:41:53 UTC 2014 - nfbrown@suse.com + +- 0001-DDF-mark-missing-on-assembly-device-properly.patch +- 0002-DDF-guard-against-pdnum-being-negative.patch +- 0003-DDF-fix-possible-mdmon-crash-when-updating-metadata.patch +- 0004-DDF-Don-t-fail-compare_super_ddf-due-to-re-configure.patch + More upstream DDF fixes (bnc#866660) + +------------------------------------------------------------------- +Wed Mar 26 04:00:51 UTC 2014 - nfbrown@suse.com + +- 0001-mdmon-.service-Change-type-of-process-start-up-to-fo.patch +- 0003-Work-around-architectures-having-statfs.f_type-defin.patch +- 0004-DDF-report-seq-counter-as-events.patch +- 0005-DDF-when-first-activating-an-array-record-any-missin.patch + Two fixes for DDF (bnc#866660) and a couple of other upstream fixes + just for good measure. + +------------------------------------------------------------------- +Tue Mar 4 22:48:20 UTC 2014 - nfbrown@suse.com + +- 0001-Assemble-allow-load_devices-to-change-the-st-which-i.patch + 0002-Assemble-re-arrange-freeing-of-tst-in-load_devices.patch + 0003-Assemble-change-load_devices-to-return-most_recent-s.patch + Allow RAID5 to be assembled even when firs device listed recently + failed (bnc#865221) + +------------------------------------------------------------------- +Wed Jan 22 23:45:34 UTC 2014 - nfbrown@suse.com + +- remove boot.md. It no longer does anything useful. + +------------------------------------------------------------------- +Wed Jan 22 04:54:22 UTC 2014 - nfbrown@suse.com + +- mdmonitor + run "mdadm --monitor" from systemd instead of init.d + sciprt (bnc#849523) +- remove mdadmd due to above. +- udev-rules-try-mdadm-I-on-change-events.patch + (bnc#851993) +- policy-NULL-path-isn-t-really-acceptable-use-the-dev.patch +- DDF-really-ignore-DDF-metadata-on-partitions.patch +- Assemble-avoid-infinite-loop-when-auto-assembling-pa.patch +- DDF-fix-detection-of-failed-devices-during-assembly.patch +- Grow-fix-problems-with-prematurely-aborting-of-resha.patch +- IMSM-don-t-crash-when-creating-an-array-with-missing.patch +- mdmon-don-t-complain-about-notifying-parent-when-the.patch +- systemd-mdmon-set-IMSM_NO_PLATFORM-1.patch +- mdmon-.service-remove-over-ride-of-Standard-IO.patch + Various upstream bug fixes. + +------------------------------------------------------------------- +Wed Dec 4 23:57:16 UTC 2013 - nfbrown@suse.com + +- Assemble-Incremental-don-t-hold-O_EXCL-on-mddev-afte.patch + Ensure fsck/mount don't find an md array to be BUSY + the moment it appears. +- mkinitrd-setup.sh: Make the array device names in + /etc/mdadm.conf in the initrd match those in /etc/mdadm.conf + in the root filesystem. (bnc#851993) + +------------------------------------------------------------------- +Tue Dec 3 03:06:07 UTC 2013 - nfbrown@suse.com + +- Restructure-assemble_container_content-and-improve-m.patch +- Incremental-add-export-handling.patch +- udev-rules.degraded +- systemd-mdadm-last-resort@.service +- systemd-mdadm-last-resort@.timer + Teach systemd to start degraded arrays after a timeout if + some missing devices never appear (bnc#832501) +- Incremental-improve-support-for-DEVICE-based-restric.patch + Teach "mdadm --incremental" to handle "DEVICE" lists from + mdadm.conf properly (bnc@851993) + +------------------------------------------------------------------- +Mon Nov 11 00:45:03 UTC 2013 - nfbrown@suse.com + + +- DDF-handle-fake-RAIDs-with-changing-subarray-UUIDs.patch +- DDF-compare_super_ddf-fix-sequence-number-check.patch +- Monitor-don-t-set-arrays-dirty-after-transition-to-r.patch +- DDF-add_to_super_ddf-be-careful-with-workspace_lba.patch +- Monitor-write-meta-data-in-readonly-state-sometimes.patch +- Assembe-fix-bug-in-force_array-it-wasn-t-forcing-pro.patch + Various bugfixes from upstream - several to improve + DDF support, one which fixes a nasty bug in "--assemble --force". + +------------------------------------------------------------------- +Wed Nov 6 05:31:54 UTC 2013 - nfbrown@suse.com + +- DDF-brief_examine_subarrays_ddf-print-array-name.patch + DDF-factor-out-array-name-generation.patch + Include name in "-Db" output for DDF + FATE#316007 + +------------------------------------------------------------------- +Fri Sep 13 01:46:00 UTC 2013 - nfbrown@suse.com + +- boot.md - simplify boot. + As array assembly is done by udev, it shouldn't + be done by boot.md. This will avoid some problems + with arrays getting started degraded. + +------------------------------------------------------------------- +Fri Sep 13 00:59:15 UTC 2013 - nfbrown@suse.com + +- Make-IRs-and-run-work-properly-for-containers.patch +- mdmon-honour-offroot-again.patch +- DDF-allow-for-possibility-that-there-is-no-secondary.patch + Upstream fixes + +------------------------------------------------------------------- +Thu Sep 12 01:12:36 UTC 2013 - nfbrown@suse.com + +- config-set-auto_seen-after-processing-the-auto-line.patch + Fix bug which causes "AUTO -all" in mdadm.conf + in initrd to be ignored, so array might be + auto-assembled too early. + +------------------------------------------------------------------- +Thu Sep 12 01:05:03 UTC 2013 - nfbrown@suse.com + +- mkinitrd-boot.sh: simplify boot sequence by relying + completely on udev running "mdadm -I". Thus + mkinitrd-boot.sh needs to do very little. + The devfunction script in the mkinitrd package has + been modified to start newly degraded array after + a suitable timeout. +- mkinitrd-setup.sh: + - don't save md_devs as it isn't used any more + - allow md device names like "/dev/md_foo" which will + need to be supported in due course. + +------------------------------------------------------------------- +Mon Sep 9 03:06:20 UTC 2013 - nfbrown@suse.com + +- mkinitd-boot.sh: Clear {root,resume}_major variable + + If multipath is in use, md is always on top of it. Therefore, the root + device is always an md device. (bnc#786526) + +------------------------------------------------------------------- +Fri Sep 6 04:02:41 UTC 2013 - nfbrown@suse.com + +- mkinitrd-setup.sh: copy new udev rules files into + the initrd. + The "mkinitrd" package does this for the old name. + It is easier if this packages does it for the files + this package installs. + (bnc#838777) + +------------------------------------------------------------------- +Tue Sep 3 05:45:28 UTC 2013 - nfbrown@suse.com + +- New upstream release - mdadm-3.3 + Lot of improvements to --grow and DDF support. + Better interaction with systemd. + Hot-replace support and more. + Removes patches: + assemble-EXCL-race.fix + 0001-Add-support-for-launching-mdmon-via-systemctl-instea.patch + 0002-In-case-launching-mdmon-fails-print-an-error-message.patch + 0003-mdmon-add-foreground-option.patch + 0004-Suppress-error-messages-from-systemctl.patch + which were backports from upstream. + +------------------------------------------------------------------- +Thu Jun 13 04:12:54 UTC 2013 - nfbrown@suse.com + +- assemble-EXCL-race.fix: avoid some races during + array assembled- particularly at boot (bnc#793954) +- boot.md: make sure systemd-udev-trigger runs before + boot.md to avoid races: bnc#793954 +- mdmon@.service - new file plus patches to allow + mdmon to be started by systemd, so it doesn't + kill it (bnc#321366) + +------------------------------------------------------------------- +Tue Apr 16 10:38:19 UTC 2013 - idonmez@suse.com + +- Add Source URL, see https://en.opensuse.org/SourceUrls + +------------------------------------------------------------------- +Wed Feb 27 08:14:49 UTC 2013 - cfarrell@suse.com + +- license update: GPL-2.0 + mdadm/Software-RAID.HOWTO.tar.bz2 + +------------------------------------------------------------------- +Sun Nov 4 01:43:34 UTC 2012 - crrodriguez@opensuse.org + +- Fix factory breakage on udev and systemd rules. + +------------------------------------------------------------------- +Thu Oct 25 23:18:19 UTC 2012 - nfbrown@suse.com + +- new upstream release 3.2.6. Subsumes all of our + patches and adds a lot of other bug fixes for + less common cases including for a couple that cause + mdadm to crash. + +------------------------------------------------------------------- +Tue Oct 9 03:35:22 UTC 2012 - nfbrown@suse.com + +- remove /lib/udev/devices from specfile as it is + unused +- mkinitrd-setup.sh: fixed recent breakage for IMSM + arrays (bnc#783444) + +------------------------------------------------------------------- +Thu Sep 20 06:03:45 UTC 2012 - nfbrown@suse.com + +- mdmon-takeover.fix + find-free-devnum.fix + mapfile-rebuild.fix + udev-offroot + Fix various issues will installation on IMSM + RAID arrays, booting from those arrays, and + clean shutdown when such an array is used for '/'. + (bnc#752107 bnc#732294 bnc#770351) + +- mkinitrd-setup.sh: allow use stable md device name + and allow it to have a ':' in it. (bnc#779087) + +- boot.md: make sure udev-trigger runs before + boot.md. (bnc#772286) + +------------------------------------------------------------------- +Mon Aug 20 06:53:24 UTC 2012 - nfbrown@suse.com + +- mdmon-takeover.fix + find-free-devnum.fix + mapfile-rebuild.fix + udev-offroot + Fix various issues will installation on IMSM + RAID arrays, booting from those arrays, and + clean shutdown when such an array is used for '/'. + (bnc#752107 bnc#732294 bnc#770351) + +------------------------------------------------------------------- +Thu Jul 26 16:50:03 UTC 2012 - fcrozat@suse.com + +- Add blkid-builtin.patch: use blkid built-in from udev + +------------------------------------------------------------------- +Thu Jul 5 03:14:43 UTC 2012 - nfbrown@suse.com + +- mdmon-arg.fix: fix arg parsing in mdmon so that + "--all --takeover" works. (bnc#767150) + +------------------------------------------------------------------- +Thu Jun 21 07:27:24 UTC 2012 - meissner@suse.com + +- use recommends: smtp_daemon, similar to cronie example + +------------------------------------------------------------------- +Thu Jun 14 18:55:05 UTC 2012 - opensuse@cboltz.de + +- add missing dependencies on cron and /usr/sbin/sendmail (bnc#767155) + +------------------------------------------------------------------- +Thu May 24 01:52:37 UTC 2012 - nfbrown@suse.com + +- udev-rules.fix: make sure systemd doesn't try + to mount array before it is fully assembled. + (bnc#752869) + +------------------------------------------------------------------- +Tue May 22 05:15:52 UTC 2012 - nfbrown@suse.com + +- boot.md/mkinitrd-boot.sh: complete any incremental + assembly before attempting to assemble arrays. + If incremental assembly has partialy assembled + degraded arrays, now is the time to start them going. + (bnc#752869) +- mdamd.cron: send daily reports if any arrays are + degraded. + +------------------------------------------------------------------- +Fri May 18 07:16:59 UTC 2012 - nfbrown@suse.com + +- New upstream version: 3.2.5. Serious regression + in 3.2.4 necessitated a new release. Only significant + fix is that "--add" now works again. + +------------------------------------------------------------------- +Wed May 9 01:22:11 UTC 2012 - nfbrown@suse.com + +- New upstream version: 3.2.4. /run/mdadm is not + used for runtime files, not /var/run or /dev/.mdadm. + +------------------------------------------------------------------- +Fri Apr 20 08:00:33 UTC 2012 - rmilasan@suse.com + +- Run update of initrd at %post and %postun. + We need this to make sure initrd reflects the updates. + +------------------------------------------------------------------- +Wed Dec 21 10:28:19 UTC 2011 - coolo@suse.com + +- remove call to suse_update_config (very old work around) + +------------------------------------------------------------------- +Thu Oct 6 02:16:35 UTC 2011 - nfbrown@suse.com + +- mkinitrd-setup.sh -- add "AUTO -all" to initrd mdadm.conf + so that only arrays needed for boot are auto-assembled. +- auto-line.fix -- fix handling of "AUTO" line + in mdadm.conf so it actually works. + (bnc#721905) + +------------------------------------------------------------------- +Fri Sep 30 15:35:39 UTC 2011 - uli@suse.com + +- cross-build fix: use %__cc macro + +------------------------------------------------------------------- +Thu Aug 18 06:30:45 UTC 2011 - nfbrown@novell.com + +- boot.md: improve 'status' and add 'reload' + function. Also change 'Raid' to 'RAID' + for consistency (bnc#709474) + +------------------------------------------------------------------- +Thu Aug 18 06:01:39 UTC 2011 - nfbrown@novell.com + +- Use udev rules file from upstream package, rather + have having a separate one. + +------------------------------------------------------------------- +Thu Aug 18 03:01:57 UTC 2011 - nfbrown@novell.com + +- Update to new upstream 3.2.2 plug git patches. + Also update FSF address in boot-md. + +------------------------------------------------------------------- +Wed Aug 10 02:54:57 UTC 2011 - crrodriguez@opensuse.org + +- Do not use -fno-strict-aliasing when not needed + +------------------------------------------------------------------- +Tue Jun 14 06:07:19 UTC 2011 - nfbrown@novell.com + +- 64-md-raid.rules - make clear distinction between + 'disk' and 'partition' cases. In particular it + is wrong and problematic to test for 'md/array_state' + for 'partition' devices as they cannot see 'md/*' + and cannot exist when it doesn't have a valid value + anyway. (bnc#684291) + +------------------------------------------------------------------- +Tue Mar 1 22:15:23 UTC 2011 - nfbrown@novell.com + +- mkinitrd-boot.sh: don't assume /dev/md when device + name cannot be found. It could easily be wrong, + and there is no need as mdadm will choose a device. + (bnc#656536) + +------------------------------------------------------------------- +Thu Feb 17 00:27:02 UTC 2011 - nfbrown@novell.com + +- 64-md-raid.rules: avoid races with md devices + appearing and disappearing. + If the 'array_state' file doesn't exist, that is equivalent + to it having 'clear' in it. (bnc#641382) + +------------------------------------------------------------------- +Wed Nov 17 03:27:33 UTC 2010 - nfbrown@novell.com + +- boot.md - change args to mdmon. + The argument parsing of mdmon changed in the recent update + and we need to change boot.md to match. + +------------------------------------------------------------------- +Thu Oct 21 18:01:14 CEST 2010 - ro@suse.de + +- update to 3.1.4 + - Support --grow to change the layout of RAID4/5/6 + - Support --grow to change the chunksize of raid 4/5/6 + - Support --grow to change level from RAID1 -> RAID5 -> RAID6 and + back. + - Support --grow to reduce the number of devices in RAID4/5/6. + - Support restart of these grow options which assembling an array + which is partially grown. + - Assorted tests of this code, and of different RAID6 layouts. + - The default metadata is now v1.2 + - The default chunksize is now 512K rather than 64K. This seems more + appropriate for modern devices. + - The default bitmap chunksize for internal bitmaps is now at least + 64Meg as fine grained bitmaps tend to impact performance more for + little extra gain. + - Alway make bitmap 4K-aligned if at all possible. +- removed patches: + - bitmap-4k-boundary.patch (obsolete/upstream) + - fix-dup.patch (obsolete/upstream) + - IMSM-part.patch (obsolete/upstream) + - container-argv-check (obsolete/upstream) + +------------------------------------------------------------------- +Mon Jun 28 06:38:35 UTC 2010 - jengelh@medozas.de + +- use %_smp_mflags + +------------------------------------------------------------------- +Tue Jun 1 15:09:53 CEST 2010 - mmarek@suse.cz + +- mkinitrd-setup.sh: Fix for empty $md_devs variable. + +------------------------------------------------------------------- +Fri Apr 23 10:57:57 UTC 2010 - nfbrown@novell.com + +- IMSM-part.patch - never try to include partitions in an + IMSM array - bnc#597787 +- container-argv-check - avoid incorrect error message when + assembling multiple containers - bnc#598827 + +------------------------------------------------------------------- +Thu Apr 22 15:04:30 CEST 2010 - mmarek@suse.cz + +- mkinitrd-boot.sh: Fix booting with root=/dev/disk/by-id/md-uuid*, + run mdadm -v when linuxrc=trace is given (bnc#597787). + +------------------------------------------------------------------- +Mon Apr 19 05:36:23 UTC 2010 - nfbrown@novell.com + +- fix-dup.patch: revised version to make sure partial + device is destroyed properly (bnc#587925). + +------------------------------------------------------------------- +Fri Mar 26 16:00:05 CET 2010 - mmarek@suse.cz + +- fix-dup.patch: catch attempts to add the same disk twice + (bnc#587925). + +------------------------------------------------------------------- +Wed Mar 24 17:37:27 CET 2010 - mmarek@suse.cz + +- 64-md-raid.rules: Use absolute path to grep, otherwise udev will + only search in /lib/udev (bnc#590832). + +------------------------------------------------------------------- +Tue Mar 23 14:49:38 CET 2010 - mmarek@suse.cz + +- mkinitrd-*.sh: Assemble md arrays even if the root= or resume= + option doesn't directly refer to md (bnc#589676, bnc#586837, + bnc#583424). + +------------------------------------------------------------------- +Mon Mar 22 16:30:11 CET 2010 - mmarek@suse.cz + +- mdmon: Fix crash if /proc/mdstat lists 0.9 superblocks + (bnc#589447). + +------------------------------------------------------------------- +Thu Mar 11 10:18:18 CET 2010 - mmarek@suse.cz + +- 64-md-raid.rules: Use blkid instead of vol_id. + +------------------------------------------------------------------- +Thu Mar 11 09:58:21 CET 2010 - mmarek@suse.cz + +- 64-md-raid.rules: Allow --incremental assembly if "AUTO -all" is + given in mdadm.conf (fate#307478). + +------------------------------------------------------------------- +Tue Mar 9 16:15:41 CET 2010 - mmarek@suse.cz + +- Install udev rules in /lib/udev/rules.d (fate#307478). + +------------------------------------------------------------------- +Mon Feb 22 15:14:03 CET 2010 - mmarek@suse.cz + +- mkinitrd-setup.sh: call mdadm --scan only if necessary + (bnc#581769). + +------------------------------------------------------------------- +Fri Feb 19 12:10:11 CET 2010 - mmarek@suse.cz + +- bitmap-4k-boundary.patch: Alling the internal bitmap on 4K + boundary (bnc#577468). + +Fri Jan 15 17:37:26 CET 2010 - mmarek@suse.cz + +- fix modprobe invocation in boot.md (bnc#565293). + +------------------------------------------------------------------- +Fri Jan 15 17:04:06 CET 2010 - mmarek@suse.cz + +- store mdmon runtime files in /dev/.mdadm, to make it easier to + transfer mdmon from the initrd to the real root. +- rework the mkinitrd setup script a bit. + +------------------------------------------------------------------- +Wed Jan 6 15:47:03 CET 2010 - mmarek@suse.cz + +- mkinitrd-*.sh: fix booting from partitionable md devices and + from container devices (bnc#565219). + +------------------------------------------------------------------- +Tue Dec 15 20:26:46 CET 2009 - jengelh@medozas.de + +- enable parallel building + +------------------------------------------------------------------- +Fri Dec 4 18:00:40 CET 2009 - mmarek@suse.cz + +- Support for partitionable md devices in mkinitrd scripts + (fate#305883). + +------------------------------------------------------------------- +Tue Nov 3 11:03:54 CET 2009 - mmarek@suse.cz + +- update to 3.0.3 (fate#307159) + * mdmon improvements (needed for fate#306823) + * other fixes + +------------------------------------------------------------------- +Fri Oct 30 16:49:40 CET 2009 - mmarek@suse.cz + +- mkinitrd-boot.sh: add /sbin/mdmon to the initrd (fate#306823). + +------------------------------------------------------------------- +Thu Oct 1 10:51:38 CEST 2009 - mmarek@suse.cz + +- updated to 3.0.2 + 2 patches + * bugfixes only + +------------------------------------------------------------------- +Fri Jun 12 09:43:43 CEST 2009 - mmarek@suse.cz + +- remove static md* device nodes, they should not be needed + anymore. + +------------------------------------------------------------------- +Thu Jun 11 11:32:55 CEST 2009 - mmarek@suse.cz + +- updated to 3.0 final +- dropped all patches + +------------------------------------------------------------------- +Tue Mar 3 10:36:11 CET 2009 - mmarek@suse.cz + +- super0: Do all metadata IO with 4096byte alignment +- super1 - do metadata IO in sector_size units. + (bnc#466172) + + +------------------------------------------------------------------- +Sat Feb 21 15:37:55 CET 2009 - mmarek@suse.cz + +- mkinitrd-setup.sh: filter out duplicate devices (bnc#461673, + patch by Xin Wei Hu) + +------------------------------------------------------------------- +Tue Feb 17 17:01:23 CET 2009 - mmarek@suse.cz + +- disable auto-assemly in boot.md completely as it can collide with + dmraid (bnc#474652). If someone wants to auto-assemble md arrays + in the rescue system, they can run + 'mdadm -Es -c partitions >mdadm.conf && mdadm -As -c mdadm.conf' + manually. + + +------------------------------------------------------------------- +Mon Feb 16 16:00:11 CET 2009 - mmarek@suse.cz + +- fix segfault when stopping imsm arrays + (bnc#473947, patch by Dan Williams) + +------------------------------------------------------------------- +Mon Jan 26 11:47:59 CET 2009 - ro@suse.de + +- change fillup call from "-Y" to "-y" the boot script has + been present in this package for long enough (SLES10-GA) + +------------------------------------------------------------------- +Fri Dec 5 10:21:10 CET 2008 - hare@suse.de + +- Wait for udev to settle before continuing (bnc#435778) + +------------------------------------------------------------------- +Fri Dec 5 06:18:44 CET 2008 - nfbrown@suse.de + +- boot.md : an exit status of '2' from "mdadm --assemble" + should not be seen as failure by boot.md. + It happens if one or more arrays is already + assembled. + (bnc#456028) + +------------------------------------------------------------------- +Thu Nov 20 07:07:06 CET 2008 - nfbrown@suse.de + +- don-t-auto-assemble-if-any-arrays-are-list.patch + Avoid assembling extra arrays during initrd + processing. bnc#445438 + +------------------------------------------------------------------- +Thu Nov 20 04:57:30 CET 2008 - nfbrown@suse.de + +- mdmon-pass-symbolic-name-to-mdmon-instead-of-device.patch + avoid problems if mdmon is run before + udev creates any devices. + +------------------------------------------------------------------- +Fri Nov 14 05:33:41 CET 2008 - nfbrown@suse.de + +- intel.fixes.patch : various fixes from intel for + proper handling of their metadata +- name.fixes.patch : various fixes for new handling + of device names - one could cause a crash. + +------------------------------------------------------------------- +Sun Nov 9 23:38:39 CET 2008 - ro@suse.de + +- fix patch apply depth + +------------------------------------------------------------------- +Fri Nov 7 12:34:30 CET 2008 - nfbrown@suse.de + +- mdadm-auto-assemble.patch - fix various bugs in + auto-assemble +- start-kpartx-for-imsm-devices.patch - IMSM devices + need to be partitioned, and may programs including + YaST don't understand partitioned md devices, + so run kpartx to create 'dm' based partitions which + have a better chance for being understood + This relates to FATE#304220 + +------------------------------------------------------------------- +Fri Nov 7 10:32:35 CET 2008 - ro@suse.de + +- remove udev rule (conflicting with file in udev package) + +------------------------------------------------------------------- +Fri Nov 7 02:58:40 CET 2008 - ro@suse.de + +- buildfix: add missing DESTDIR to Makefile for udev rule +- fix len in snprintf to silence compiler warning about potential + overflow + +------------------------------------------------------------------- +Thu Nov 6 03:22:50 CET 2008 - nfbrown@suse.de + +- Update from mdadm-3.0-devel1 to mdadm-3.0-devel2. + This includes various bug fixes and enhancements to the + extent that DDF and IMSM work reasonably well and can be + auto-assembled much like other arrays. +- Allow BOOT_MD_USE_MDADM_CONFIG to have the value 'part' + that, like 'no', arrays are auto-assembled. However they + get assembled as 'mdp' partitionable arrays where possible. + This currently only affect arrays with v1.x metadata. + This supports FATE#303894 + +------------------------------------------------------------------- +Fri Oct 3 15:28:49 CEST 2008 - mmarek@suse.cz + +- fixed mdmon's clone_monitor on ia64 + +------------------------------------------------------------------- +Fri Oct 3 14:28:55 CEST 2008 - mmarek@suse.cz + +- fixed byte swapping in super-intel.c on big endian. + +------------------------------------------------------------------- +Wed Sep 24 18:24:25 CEST 2008 - ro@suse.de + +- change "udevsettle" to "udevadm settle" + +------------------------------------------------------------------- +Fri Sep 19 11:14:05 CEST 2008 - mmarek@suse.cz + +- added /var/run/mdadm for mdmon +- fixed build + +------------------------------------------------------------------- +Thu Sep 18 09:33:19 CEST 2008 - nfbrown@suse.de + +- update to mdadm-3.0-devel1 + package version number is set to 3.0 to avodi future confusion. + This is a substantial update that provides support for handling + the metadata entirely in userspace and thus making easier to + handle a variety of metadata formats. Support is included for + DDF and for the Intel Matrix metadata used by recent ICH chipsets. + + An extra program 'mdmon' is needed and included. It is run to + monitor any array using 'external' (to the kernel) metadata + and will update the metadata in response to device failures etc. + + This is required for FATE 304219 + + +------------------------------------------------------------------- +Wed Sep 3 11:09:34 CEST 2008 - hare@suse.de + +- Call mkinitrd_setup during %post and %postun (bnc#413709) + +------------------------------------------------------------------- +Sun Aug 17 08:04:26 CEST 2008 - aj@suse.de + +- Fix init scripts. + +------------------------------------------------------------------- +Wed Jul 23 15:21:59 CEST 2008 - hare@suse.de + +- Include mkinitrd scriptlets. + +------------------------------------------------------------------- +Fri Jun 20 14:28:20 CEST 2008 - mmarek@suse.cz + +- updated to 2.6.7 + fixes from git + * Avoid segfault when parsing /proc/mdstat with auto-read-only + arrays. + * For v0.90 superblocks, print the 'Events' count as a real + count, not 2 numbers separated by a dot. + * Allow creation of a RAID6 with exactly one missing device. + * Use LOG_PID for syslog, so you get the pid of mdadm in the + log files. + * --export now works with --examine too (not just --detail) + * Improve auto-creation of device special file when using + --incremental + * Simple locking for --incremental so mdadm doesn't get + confused when run concurrently with itself. + * Make --incremental cope better with arrays that are being + reshaped. + * Fix autoassemble for stack arrays. +- remove /tmp/mdadm.conf in boot.md (bnc#401138) + +------------------------------------------------------------------- +Wed Apr 30 15:57:14 CEST 2008 - mmarek@suse.cz + +- added some fixes from Neil's git repo, fixing bnc#368704 among + others + +------------------------------------------------------------------- +Mon Feb 4 19:24:54 CET 2008 - mmarek@suse.cz + +- correctly display rc_status in boot.md + +------------------------------------------------------------------- +Wed Jan 23 15:55:24 CET 2008 - mmarek@suse.cz + +- fixed auto-assembly part of boot.md + * if /etc/mdadm.conf is empy or only contains whitespace or + comments, no autoassembly is done + * remove /tmp/mdadm.conf even if a directory [#329678] +- dropped mdrun and raidautorun (no longer needed) + +------------------------------------------------------------------- +Wed Oct 24 17:08:11 CEST 2007 - mmarek@suse.cz + +- updated to 2.6.4 + * Make "--create --auto=mdp" work for non-standard device names. + * Fix restarting of a 'reshape' if it was stopped in the middle. + * Fix a segfault when using v1 superblock. + * Make --write-mostly effective when re-adding a device to an + array. + * Various minor fixes +- changes in 2.6.3: + * allow --write-behind to be set for --grow. + * When adding new disk to an array, don't reserve so much bitmap + space that the disk cannot store the required data. (Needed + when 1.x array was created with older mdadm). + * When adding a drive that was a little too small, we did not get + the correct error message. + * Make sure that if --assemble find an array in the critical + region of a reshape, and cannot find the critical data to + restart the reshape, it gives an error message. + * Fix segfault with '--detail --export' and non-persistent + superblocks. + * Various manpage updates. + * Improved 'raid4' support (--assemble, --monitor) + * Option parsing fixes w.r.t -a + * Interpret "--assemble --metadata=1" to allow any version 1.x + metadata, and be more specific in the "metadata=" message + printed with --examine --brief + * Fix spare migration in --monitor. + +------------------------------------------------------------------- +Fri Jul 27 13:01:01 CEST 2007 - mmarek@suse.cz + +- changes to the init script [#288454] + * don't try to autoassemble if /etc/mdadm.conf exists (even an + empty one) + * ony autoassemble partitions found in /proc/partitions + +------------------------------------------------------------------- +Fri Jul 13 15:02:21 CEST 2007 - mmarek@suse.cz + +- updated to 2.6.2 + * --fail detached and --remove faulty can be used to fail and + remove devices that are no longer physically present. + * --export option for --detail or present information in a format + that can be processed by udev. + * fix internal bitmap allocation problems with v1.1, v1.2 + metadata. + * --help now goes to stdout so you can direct it to a pager. + * Various manpage updates. + * Make "--grow --add" for linear arrays really work. + * --auto-detect to trigger in-kernel autodetect. + * Make return code for "--detail --test" more reliable. Missing + devices as well as failed devices cause an error. +- added some fixes from Neil's git repo (mdadm-git-fixes.patch) + +------------------------------------------------------------------- +Thu Jun 21 15:58:37 CEST 2007 - adrian@suse.de + +- fix changelog entry order + +------------------------------------------------------------------- +Mon Apr 2 15:00:10 CEST 2007 - mmarek@suse.cz + +- updated to 2.6.1 + * --monitor was producing some meaningless warnings due to a bug. + * Fix some compiler warnings. + * Fully support --grow for raid6. If a reshape crashed during + the critical period, mdadm wouldn't restore the Q information + properly. + * Update documentation for --grow. + * Report bitmap status in --detail and --examine + * Default to v1 superblocks instead of v0.90 if the array + is too big for 0.90 to handle. + * Sort the output of "mdadm --detail --scan" so that it is + in a suitable order for assembling arrays. i.e. components come + before an array that they are part of. + * Require bitmap files to have a '/' in their name. + * Rewrite 'reshape' support including performing a backup + of the critical region for a raid5 growth, and restoring that + backup after a crash. + * Put a 'canary' at each end of the backup so a corruption + can be more easily detected. + * Support --backup-file for backing-up critical section during + growth. + * Erase old superblocks (of different versions) when creating new + array. + * Allow --monitor to work with arrays with >28 devices + * Report reshape information in --detail + * Handle symlinks in /dev better + * Fix mess in --detail output which a device is missing. + * Support 'bitmap=' in mdadm.conf for auto-assembling arrays with + write-intent bitmaps in separate files. + * Fix alignment problem in version-1 superblocks. + NOTE: This is an incompatable change affecting raid5 reshape. + If you want to reshape a raid5 using version-1 superblocks, + use 2.6.17-rc2 or later, and mdadm-2.4.1 or later. + * Support 'mailfrom' line in mdadm.conf so the From: line in alert + emails can be explicitly set. + * Arrange that SparesMissing (which is similar in import to + DegradedArray) generates an Email. + * Assume "DEVICE partitions" if no DEVICE line is given. + * Support new 'offset' layout for raid10. + * When creating a bitmap file, choose a chunksize to limit number + of bitmap chunks to 2 million. More than this can cause kmalloc + failure. + * New 'CREATE' line in mdadm.conf for defaults such as owner, group, + mode and auto-flag + * --detail checks if array has been started or not and includes that + in report. + * When using --update=uuid on an array with a bitmap, update the + bitmap's uuid too. + * Add a copy of /proc/mdstat to the mail message sent by mdadm + --monitor. + * New flag --no-degraded to avoid starting arrays if there are + fewer devices available than last time the array was started. + This is only needed with --scan, as with --scan, that behaviour + is the default. + * Support for 'homehost' concept. This is a fairly major update. + It includes a configfile option and a command line option for + specifying a homehost, records that host in the superblock, + and reports the homehost where possible. + * Support for Auto Assembly. "mdadm -As" will, if provided with + the name of a homehost, try to assemble all arrays it can find + that were created for that homehost. See man pages for more details. + * Don't try to create devices with --manage or --grow + * allow default metadata (superblock) type to be specified + in mdadm.conf + * Avoid some misdetection of overlapping partitions + * Add 'Array Slot' line to --examine for version-1 superblocks + to make it a bit easier to see what is happening. + * Work around bug in --add handling for version-1 superblocks + in 2.6.17 (and prior). + * Make -assemble a bit more resilient to finding strange + information in superblocks. + * When creating devices in /dev/md/ create matching symlinks + from /dev. e.g. /dev/md0 -> /dev/md/0. + Allow this to be disabled in mdadm.conf or on command line. + * Allow a number (of partitions) after the 'yes' option to --auto= + This is particularly useful in the 'create' line in mdadm.conf. + * Remove partitions from any whole device that is made part of + an md array. This is a work-around for annoying messages + when the first block on some drive accidentally looks like a + partition table. + * Close stray fd in mdassemble so that it can assemble stacked + devices + * If mdassemble finds an array already assembled, it marks it + read-write. + * Remove error in md_open if array is already active. This isn't + needed and gets in the ways if an array was created e.g. in + initramfs, but device doesn't yet exist in /dev. + * When --assemble --scan is run, if all arrays that could be found + have already been started, don't report an error. + * Allow --assemble --force to mark a raid6 clean when it has two + missing devices (which is needed else if won't assemble. + Without this fix it would only assemble if one or zero + missing devices. + * Support --update=devicesize for cases where the underlying device + can change size. + * Default to --auto=yes so the array devices with 'standard' names + get created automatically, as this is almost always what is wanted. + * Give useful message if raid4/5/6 cannot be started because it is + not clean and is also degraded. + * Increase raid456 stripe cache size if needed to --grow the array. + The setting used unfortunately requires intimate knowledge of the + kernel, and it not reset when the reshape finishes. + * Change 'Device Size' to 'Used Dev Size' because it only shows how + much of each device is actually used, not how big they are. + * --wait or -W will wait for resync activity to finish on the given + devices. + * If two drives in a raid5 disappear at the same time, then "-Af" + will add them both in rather than just one and forcing the array + to 'clean'. This is slightly safer in some cases. + * Don't hold md device open for so long in --monitor mode - map_dev + can be slow and interferes with trying to stop the array. + * Support --uuid= with --create to choose your own UUID. + * New major more "--incremental" for incremental assemble of arrays, + intended for use with udev. + * lots of bugfixes + * manpage updates + +------------------------------------------------------------------- +Wed Jan 10 11:58:14 CET 2007 - mmarek@suse.cz + +- use raidautorun instead of mdrun to autodetect the raid arrays in + boot.md [#230733] + +------------------------------------------------------------------- +Wed Nov 8 10:51:13 CET 2006 - prusnak@suse.cz + +- fixed subscript out of range [#212697] + +------------------------------------------------------------------- +Wed Sep 20 17:17:22 CEST 2006 - mjancar@suse.cz + +- update to 2.5.3 + * lots bugfixes + * drop all patches (integrated upstream) + +------------------------------------------------------------------- +Fri Jul 28 13:12:47 CEST 2006 - olh@suse.de + +- remove dropped boot.ibmsis from boot.md +- boot.rootfsck should start before boot.md (#181972) + +------------------------------------------------------------------- +Fri Jul 21 14:16:28 CEST 2006 - olh@suse.de + +- remove boot.proc from Required-Start: in boot.md (#178753) + +------------------------------------------------------------------- +Wed May 3 13:12:42 CEST 2006 - mjancar@suse.cz + +- fix false SparesMissing error (#171326) + +------------------------------------------------------------------- +Wed Apr 26 09:46:28 CEST 2006 - hare@suse.de + +- Fix init script dependencies +- Implement MDADM_DEVICE_TIMEOUT to set a timeout for + udevsettle (#149979) + +------------------------------------------------------------------- +Tue Apr 25 13:39:38 CEST 2006 - mjancar@suse.cz + +- add static device nodes for udev (#168824) + +------------------------------------------------------------------- +Wed Apr 19 10:27:19 CEST 2006 - mjancar@suse.cz + +- set $BOOT_MD_USE_MDADM_CONFIG to "yes" by default (#155120) + +------------------------------------------------------------------- +Fri Apr 7 11:33:15 CEST 2006 - mjancar@suse.cz + +- detach mdadmd from tty in rcmdadmd (#160881) + +------------------------------------------------------------------- +Mon Apr 3 09:54:55 CEST 2006 - mjancar@suse.cz + +- fix garbled output with --detail (#160827) +- fix fix write-mostly with --add and --re-add (#162968) + +------------------------------------------------------------------- +Fri Mar 24 21:31:54 CET 2006 - mjancar@suse.cz + +- add /sbin/raidautorun (#159460) + +------------------------------------------------------------------- +Wed Mar 8 18:33:12 CET 2006 - mjancar@suse.cz + +- add $BOOT_MD_USE_MDADM_CONFIG sysconfig variable (#155120) + +------------------------------------------------------------------- +Thu Feb 9 16:59:52 CET 2006 - mjancar@suse.cz + +- round free size to chunk size multiply on --create (#148562) + +------------------------------------------------------------------- +Tue Feb 7 08:59:50 CET 2006 - mjancar@suse.cz + +- move boot.multipath to Should-Start instead of Required-Start + +------------------------------------------------------------------- +Mon Feb 6 15:27:47 CET 2006 - mjancar@suse.cz + +- add "Obsoletes: raidtools" +- start boot.md after boot.multipath +- call mdadm without -a from mdrun, an argument is required in 2.2 + +------------------------------------------------------------------- +Mon Feb 6 11:36:26 CET 2006 - mjancar@suse.de + +- don't start mdadmd by default + +------------------------------------------------------------------- +Sun Feb 5 20:46:43 CET 2006 - mjancar@suse.cz + +- include option for email to be sent on start (#142105) +- fix missing md autostart due to raidtools dropped (#148234) + * include mdrun script from Debian + * create boot.md initscipt + +------------------------------------------------------------------- +Sun Feb 5 17:46:32 CET 2006 - schwab@suse.de + +- Fix memset parameters. + +------------------------------------------------------------------- +Thu Feb 2 12:30:26 CET 2006 - mjancar@suse.cz + +- fix segfault on --assemble (#146514) + +------------------------------------------------------------------- +Fri Jan 27 02:12:42 CET 2006 - mls@suse.de + +- converted neededforbuild to BuildRequires + +------------------------------------------------------------------- +Wed Jan 25 10:48:18 CET 2006 - olh@suse.de + +- fix uninitialized variable, memset call and memcmp/memcpy bug + mdadm.bug144647-array.init.patch + mdadm.bug144647-update_super1-memcpy.patch + mdadm.bug144647-add_internal_bitmap0-memcpy.patch + +------------------------------------------------------------------- +Wed Jan 11 13:49:54 CET 2006 - mjancar@suse.cz + +- update ro 2.2 + +------------------------------------------------------------------- +Tue Dec 20 12:57:25 CET 2005 - ro@suse.de + +- at least output errors if they occur (instead of ignoring) + +------------------------------------------------------------------- +Wed Nov 30 17:19:24 CET 2005 - schwab@suse.de + +- Fix broken formats. + +------------------------------------------------------------------- +Tue Oct 25 09:53:57 CEST 2005 - aj@suse.de + +- Build with -fno-strict-aliasing. + +------------------------------------------------------------------- +Wed Oct 12 20:18:00 CEST 2005 - mjancar@suse.cz + +- update to 2.1 + +------------------------------------------------------------------- +Thu Jul 28 20:28:32 CEST 2005 - anicka@suse.cz + +- update to 1.12.0 + +------------------------------------------------------------------- +Wed Jun 15 13:16:42 CEST 2005 - meissner@suse.de + +- use RPM_OPT_FLAGS correctly. + +------------------------------------------------------------------- +Tue Apr 19 13:48:24 CEST 2005 - postadal@suse.de + +- updated to version 1.11.0 +- fixed for gcc 4.0 +- removed obsoleted patch config-fix + +------------------------------------------------------------------- +Wed Mar 30 13:24:23 CEST 2005 - postadal@suse.cz + +- fixed parsing command line option '--config=partions' [#74603] + +------------------------------------------------------------------- +Fri Feb 4 13:09:49 CET 2005 - postadal@suse.cz + +- updated to version 1.9.0 + +------------------------------------------------------------------- +Thu Jan 13 17:24:55 CET 2005 - postadal@suse.cz + +- updated to version 1.8.1 +- extended comment in sysconfig.mdadm [#48567] + +------------------------------------------------------------------- +Fri Aug 06 12:09:58 CEST 2004 - postadal@suse.cz + +- updated to version 1.6.0 + * added --auto= and --assume-clean options + * added "degraded" and "recovering" options to the "Status:" entry + +------------------------------------------------------------------- +Tue Feb 10 13:45:52 CET 2004 - postadal@suse.cz + +- updated to version 1.5.0 + * new commands "mdassemble" + * support for raid6 as found in 2.6.2 + * support partitioned md arrays with a different major number and + naming scheme + * added "SparesMissing" event when --monitor first sees an array and + it doesn't have the enough spare devices. + +------------------------------------------------------------------- +Sun Jan 11 11:50:04 CET 2004 - adrian@suse.de + +- add %defattr + +------------------------------------------------------------------- +Mon Dec 1 10:53:02 CET 2003 - fehr@suse.de + +- fix quoting problem in start script (#33392) + +------------------------------------------------------------------- +Fri Aug 29 09:36:24 CEST 2003 - fehr@suse.de + +- add PreReq for fillup + +------------------------------------------------------------------- +Tue Aug 26 10:23:44 CEST 2003 - fehr@suse.de + +- add %stop_on_removal and %restart_on_update + +------------------------------------------------------------------- +Thu Aug 14 15:40:53 CEST 2003 - fehr@suse.de + +- add missing activation metadata in sysconfig (#28901) + +------------------------------------------------------------------- +Tue Jul 29 11:03:36 CEST 2003 - fehr@suse.de + +- update to new version 1.3.0 of package + +------------------------------------------------------------------- +Mon Apr 14 20:01:43 CEST 2003 - postadal@suse.cz + +- fixed init script (added return value for unimplemented reload function) + +------------------------------------------------------------------- +Mon Mar 31 17:37:03 CEST 2003 - postadal@suse.cz + +- added buildroot, init script, sysconfig +- bzip2 sources and cleaned specfile + +------------------------------------------------------------------- +Thu Mar 20 16:18:13 CET 2003 - fehr@suse.de + +- update to version 1.2.0 of package + +------------------------------------------------------------------- +Mon Mar 3 12:16:22 CET 2003 - fehr@suse.de + +- update to version 1.1.0 of package + +------------------------------------------------------------------- +Mon Dec 2 11:30:52 CET 2002 - fehr@suse.de + +- Fix for new glibc/gcc + +------------------------------------------------------------------- +Tue Sep 17 17:34:28 CEST 2002 - ro@suse.de + +- removed bogus self-provides + +------------------------------------------------------------------- +Mon Sep 13 15:10:00 CEST 2002 - lmb@suse.de + +- Fix for 64bit arch; ioctl returns long instead of int (#20339) + +------------------------------------------------------------------- +Fri Aug 23 11:16:51 MEST 2002 - lmb@suse.de + +- Multipath arrays can now be build manually even without a superblock. +- One debugging chunk removed from patch. + +------------------------------------------------------------------- +Tue Aug 13 14:43:02 MEST 2002 - lmb@suse.de + +- Fix for the assembly of multipath arrays. + +------------------------------------------------------------------- +Mon Aug 12 11:46:43 MEST 2002 - lmb@suse.de + +- Added patch to support the enhanced multipath features. + +------------------------------------------------------------------- +Mon Aug 5 16:05:19 CEST 2002 - fehr@suse.de + +- make SuSE package from version 1.0.1 of mdadm + diff --git a/mdadm.spec b/mdadm.spec new file mode 100644 index 0000000..37cbe17 --- /dev/null +++ b/mdadm.spec @@ -0,0 +1,147 @@ +# +# spec file for package mdadm +# +# Copyright (c) 2024 SUSE LLC +# +# All modifications and additions to the file contributed by third parties +# remain the property of their copyright owners, unless otherwise agreed +# upon. The license for this file, and modifications and additions to the +# file, is the same license as for the pristine package itself (unless the +# license for the pristine package is not an Open Source License, in which +# case the license is the MIT License). An "Open Source License" is a +# license that conforms to the Open Source Definition (Version 1.9) +# published by the Open Source Initiative. + +# Please submit bugfixes or comments via https://bugs.opensuse.org/ +# + + +#Compat macro for new _fillupdir macro introduced in Nov 2017 +%if ! %{defined _fillupdir} + %define _fillupdir /var/adm/fillup-templates +%endif + +Name: mdadm +Version: 4.3 +Release: 0 +BuildRequires: binutils-devel +BuildRequires: groff +BuildRequires: pkgconfig +BuildRequires: sgmltool +BuildRequires: pkgconfig(libudev) +BuildRequires: pkgconfig(systemd) +BuildRequires: pkgconfig(udev) +PreReq: %fillup_prereq +PreReq: coreutils +URL: http://www.kernel.org/pub/linux/utils/raid/mdadm/ +Summary: Utility for configuring "MD" software RAID devices +License: GPL-2.0-only +Group: System/Base +BuildRoot: %{_tmppath}/%{name}-%{version}-build +Source: https://www.kernel.org/pub/linux/utils/raid/mdadm/%{name}-%{version}.tar.xz +Source1: Software-RAID.HOWTO.tar.bz2 +Source2: sysconfig.mdadm +Patch1: 0001-Remove-hardcoded-checkpoint-interval-checking.patch +Patch2: 0002-monitor-refactor-checkpoint-update.patch +Patch3: 0003-Super-intel-Fix-first-checkpoint-restart.patch +Patch4: 0004-Grow-Move-update_tail-assign-to-Grow_reshape.patch +Patch5: 0005-Add-understanding-output-section-in-man.patch +Patch6: 0006-util.c-change-devnm-to-const-in-mdmon-functions.patch +Patch7: 0007-Wait-for-mdmon-when-it-is-stared-via-systemd.patch +Patch8: 0008-Detail-remove-duplicated-code.patch +Patch9: 0009-mdadm-Fix-native-detail-export.patch +Patch1001: 1001-display-timeout-status.patch +Patch1002: 1002-OnCalendar-format-fix-of-mdcheck_start-timer.patch +Patch1003: 1003-mdadm-treat-the-Dell-softraid-array-as-local-array.patch +Patch1004: 1004-call-mdadm_env.sh-from-usr-libexec-mdadm.patch +Patch1005: 1005-mdadm-enable-Intel-Alderlake-RSTe-configuration.patch +%define _udevdir %(pkg-config --variable=udevdir udev) +%define _systemdshutdowndir %{_unitdir}/../system-shutdown + +%description +mdadm is a program that can be used to control Linux md devices. + +%prep +%autosetup -p1 -a1 + +%build +make %{?_smp_mflags} CC="%__cc" CXFLAGS="%{optflags} -Wno-error" EXTRAVERSION="%{release}" SUSE=yes BINDIR=%{_sbindir} +cd Software-RAID.HOWTO +sgml2html Software-RAID.HOWTO.sgml +sgml2txt Software-RAID.HOWTO.sgml + +%install +%make_install install-systemd install-udev SYSTEMD_DIR=%{_unitdir} UDEVDIR=%{_udevdir} SUSE=yes BINDIR=%{_sbindir} +rm -rf %{buildroot}/lib/udev +install -d %{buildroot}%{_fillupdir} +install -d %{buildroot}/usr/share/mdadm +install -m 755 misc/mdcheck %{buildroot}/usr/share/mdadm/mdcheck +install -m 644 %{S:2} %{buildroot}%{_fillupdir}/ +install -d %{buildroot}%{_systemdshutdowndir} +install -d %{buildroot}%{_sbindir} +ln -s %{_sbindir}/service %{buildroot}%{_sbindir}/rcmdmonitor +%if 0%{?suse_version} < 1550 + mkdir -p %{buildroot}/sbin + ln -s %{_sbindir}/mdadm %{buildroot}/sbin/mdadm + ln -s %{_sbindir}/mdmon %{buildroot}/sbin/mdmon +%endif + +%define services mdmonitor.service mdcheck_start.service mdcheck_continue.service mdmonitor-oneshot.service + +%pre +%service_add_pre %services + +%post +%service_add_post %services +%{?regenerate_initrd_post} +%fillup_only + +%preun +%service_del_preun %services + +%postun +%service_del_postun %services +%{?regenerate_initrd_post} + +%posttrans +%{?regenerate_initrd_posttrans} + +%files +%defattr(-,root,root) +%license COPYING +%doc ChangeLog README.initramfs TODO mdadm.conf-example mkinitramfs +%doc Software-RAID.HOWTO/Software-RAID.HOWTO*{.txt,.html} +%doc %{_mandir}/man?/* +%{_sbindir}/* +%if 0%{?suse_version} < 1550 +/sbin/mdadm +/sbin/mdmon +%endif +%dir /usr/share/mdadm +/usr/share/mdadm/* +%{_fillupdir}/sysconfig.mdadm +%{_udevdir}/rules.d/01-md-raid-creating.rules +%{_udevdir}/rules.d/63-md-raid-arrays.rules +%{_udevdir}/rules.d/64-md-raid-assembly.rules +%{_udevdir}/rules.d/69-md-clustered-confirm-device.rules +# %%{_systemdshutdowndir}/ is not owned by all versions of systemd-mini. +# But we really do not want to pull in a full systemd, so we rather just own +# that directory by ourselves too. After all, this is allowed. +%dir %{_systemdshutdowndir} +%{_systemdshutdowndir}/mdadm.shutdown +%{_unitdir}/mdmon@.service +%{_unitdir}/mdmonitor.service +%{_unitdir}/mdadm-last-resort@.timer +%{_unitdir}/mdadm-last-resort@.service +%{_unitdir}/mdadm-grow-continue@.service +%{_unitdir}/mdcheck_continue.service +%{_unitdir}/mdcheck_continue.timer +%{_unitdir}/mdcheck_start.service +%{_unitdir}/mdcheck_start.timer +%{_unitdir}/mdmonitor-oneshot.service +%{_unitdir}/mdmonitor-oneshot.timer +%dir %{_prefix}/libexec/ +%dir %{_prefix}/libexec/mdadm +%{_prefix}/libexec/mdadm/mdadm_env.sh + +%changelog diff --git a/sysconfig.mdadm b/sysconfig.mdadm new file mode 100644 index 0000000..0cfabf0 --- /dev/null +++ b/sysconfig.mdadm @@ -0,0 +1,73 @@ +## Path: System/File systems/Mdadm +## Description: Additional options for the mdadm daemon (see man mdadm(8)). +## +## Type: integer +## Default: 60 +# +# A delay in seconds between polling the md arrays. +# +MDADM_DELAY=60 + +## Type: string +## Default: "" +# +# A mail address (or comma-separated list of mail addresses) to send alerts to. +# +MDADM_MAIL="root@localhost" + +## Type: string +## Default: "" +# +# A program to be run whenever an event is detected. +# +MDADM_PROGRAM="" + +## Type: string +## Default: "" +# +# Monitoring MD devices. +# +MDADM_RAIDDEVICES="" + +## Type: yesno +## Default: yes +# +# "yes" for scanning config file or /proc/mdstat for missing information. +# +MDADM_SCAN=yes + +## Type: string +## Default: "/etc/mdadm.conf" +# +# The config file. +# +MDADM_CONFIG="/etc/mdadm.conf" + +## Type: yesno +## Default: no +# +# "yes" for email to be sent on start +# +MDADM_SEND_MAIL_ON_START=no + +## Type: integer +## Default: 60 +# +# Timeout for udev device detection. This is the upper limit which the +# boot script will wait for udev to finish hotplug event processing. +# If not all devices are detected during boot this value should be +# increased. Setting this to '0' disables waiting for udev. +# +MDADM_DEVICE_TIMEOUT="60" + +## Type: string +## Default: 6 hours +# +# Amount of time to spend checking md arrays each morning. +# A check will start on the first Sunday of the month and run +# for this long. If it does not complete, then it will be +# continued each subsequent morning until all arrays have +# been checked. Any string understood by "date --date=" +# can be used. An empty string disables automatic checks. +# +MDADM_CHECK_DURATION="6 hours"