forked from pool/mdadm
90d4e6869d
- 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 OBS-URL: https://build.opensuse.org/request/show/1137473 OBS-URL: https://build.opensuse.org/package/show/Base:System/mdadm?expand=0&rev=231
55 lines
1.6 KiB
Diff
55 lines
1.6 KiB
Diff
From db10eab68e652f141169b7240e057d110d626c3d Mon Sep 17 00:00:00 2001
|
|
From: Mateusz Kusiak <mateusz.kusiak@intel.com>
|
|
Date: Mon, 2 Jan 2023 09:35:16 +0100
|
|
Subject: [PATCH] Fix --update-subarray on active volume
|
|
|
|
Options: bitmap, ppl and name should not be updated when array is active.
|
|
Those features are mutually exclusive and share the same data area in IMSM (danger of overwriting by kernel).
|
|
Remove check for active subarrays from super-intel.
|
|
Since ddf is not supported, apply it globally for all options.
|
|
|
|
Signed-off-by: Mateusz Kusiak <mateusz.kusiak@intel.com>
|
|
Signed-off-by: Jes Sorensen <jes@trained-monkey.org>
|
|
---
|
|
Manage.c | 7 +++++++
|
|
super-intel.c | 5 -----
|
|
2 files changed, 7 insertions(+), 5 deletions(-)
|
|
|
|
diff --git a/Manage.c b/Manage.c
|
|
index b1d0e63..5a9ea31 100644
|
|
--- a/Manage.c
|
|
+++ b/Manage.c
|
|
@@ -1745,6 +1745,13 @@ int Update_subarray(char *dev, char *subarray, char *update, struct mddev_ident
|
|
goto free_super;
|
|
}
|
|
|
|
+ if (is_subarray_active(subarray, st->devnm)) {
|
|
+ if (verbose >= 0)
|
|
+ pr_err("Subarray %s in %s is active, cannot update %s\n",
|
|
+ subarray, dev, update);
|
|
+ goto free_super;
|
|
+ }
|
|
+
|
|
if (mdmon_running(st->devnm))
|
|
st->update_tail = &st->updates;
|
|
|
|
diff --git a/super-intel.c b/super-intel.c
|
|
index b056561..5f93f3d 100644
|
|
--- a/super-intel.c
|
|
+++ b/super-intel.c
|
|
@@ -7914,11 +7914,6 @@ static int update_subarray_imsm(struct supertype *st, char *subarray,
|
|
char *ep;
|
|
int vol;
|
|
|
|
- if (is_subarray_active(subarray, st->devnm)) {
|
|
- pr_err("Unable to update name of active subarray\n");
|
|
- return 2;
|
|
- }
|
|
-
|
|
if (!check_name(super, name, 0))
|
|
return 2;
|
|
|
|
--
|
|
2.35.3
|
|
|