summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKinga Tanska <kinga.tanska@intel.com>2022-10-28 04:51:17 +0200
committerJes Sorensen <jes@trained-monkey.org>2023-01-04 22:40:39 -0500
commit071f839ea549e2a384cd13bba445245cd87e48b1 (patch)
treef4c244736c12d3d79b183d56830142fc24ab7174
parent461fae7e7809670d286cc19aac5bfa861c29f93a (diff)
downloadmdadm-071f839ea549e2a384cd13bba445245cd87e48b1.tar.gz
super-intel: make freesize not required for chunk size migration
Freesize is needed to be set for migrations where size of RAID could be changed - expand. It tells how many free space is determined for members. In chunk size migartion freesize is not needed to be set, pointer shouldn't be checked if exists. This commit moves check to condition which contains size calculations, instead of checking it always at the first step. Fix return value when superblock is not set. Signed-off-by: Kinga Tanska <kinga.tanska@intel.com> Signed-off-by: Jes Sorensen <jes@trained-monkey.org>
-rw-r--r--super-intel.c10
1 files changed, 5 insertions, 5 deletions
diff --git a/super-intel.c b/super-intel.c
index 1f5f6ed..89fac62 100644
--- a/super-intel.c
+++ b/super-intel.c
@@ -7719,11 +7719,11 @@ static int validate_geometry_imsm(struct supertype *st, int level, int layout,
struct intel_super *super = st->sb;
/*
- * Autolayout mode, st->sb and freesize must be set.
+ * Autolayout mode, st->sb must be set.
*/
- if (!super || !freesize) {
- pr_vrb("freesize and superblock must be set for autolayout, aborting\n");
- return 1;
+ if (!super) {
+ pr_vrb("superblock must be set for autolayout, aborting\n");
+ return 0;
}
if (!validate_geometry_imsm_orom(st->sb, level, layout,
@@ -7731,7 +7731,7 @@ static int validate_geometry_imsm(struct supertype *st, int level, int layout,
verbose))
return 0;
- if (super->orom) {
+ if (super->orom && freesize) {
imsm_status_t rv;
int count = count_volumes(super->hba, super->orom->dpa,
verbose);