diff mbox series

[1/1] manage: adjust checking subarray state in update_subarray

Message ID 20231220093249.2778-2-pawel.piatkowski@intel.com (mailing list archive)
State Accepted
Headers show
Series Adjust checking subarray state | expand

Commit Message

Pawel Piatkowski Dec. 20, 2023, 9:32 a.m. UTC
Only changing bitmap related consistency_policy requires
subarray to be inactive.
consistency_policy with PPL or NO_PPL value can be changed on
active subarray.
It fixes regression introduced in commit
db10eab68e652f141169 ("Fix --update-subarray on active volume")

Signed-off-by: Pawel Piatkowski <pawel.piatkowski@intel.com>
---
 Manage.c | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

Comments

Mariusz Tkaczyk Jan. 5, 2024, 10:48 a.m. UTC | #1
On Wed, 20 Dec 2023 10:32:49 +0100
Pawel Piatkowski <pawel.piatkowski@intel.com> wrote:

> Only changing bitmap related consistency_policy requires
> subarray to be inactive.
> consistency_policy with PPL or NO_PPL value can be changed on
> active subarray.
> It fixes regression introduced in commit
> db10eab68e652f141169 ("Fix --update-subarray on active volume")
> 
> Signed-off-by: Pawel Piatkowski <pawel.piatkowski@intel.com>

Applied! 

Thanks,
Mariusz
diff mbox series

Patch

diff --git a/Manage.c b/Manage.c
index f0d4cb01..91532266 100644
--- a/Manage.c
+++ b/Manage.c
@@ -1749,6 +1749,7 @@  int Update_subarray(char *dev, char *subarray, enum update_opt update,
 	int fd, rv = 2;
 	struct mdinfo *info = NULL;
 	char *update_verb = map_num(update_options, update);
+	bool allow_active = update == UOPT_PPL || update == UOPT_NO_PPL;
 
 	memset(st, 0, sizeof(*st));
 
@@ -1763,7 +1764,7 @@  int Update_subarray(char *dev, char *subarray, enum update_opt update,
 		goto free_super;
 	}
 
-	if (is_subarray_active(subarray, st->devnm)) {
+	if (!allow_active && is_subarray_active(subarray, st->devnm)) {
 		if (verbose >= 0)
 			pr_err("Subarray %s in %s is active, cannot update %s\n",
 				subarray, dev, update_verb);