From ff904202a4a6232e0f0dfea31a7c4a34ab08f76e Mon Sep 17 00:00:00 2001 From: Mariusz Tkaczyk Date: Wed, 21 Apr 2021 16:50:08 +0200 Subject: [PATCH 01/15] imsm: change wrong size verification Expectation that size is always rounded is incorrect. Just confirm that size is smaller to be certain that update is safe. Signed-off-by: Mariusz Tkaczyk Signed-off-by: Jes Sorensen --- super-intel.c | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/super-intel.c b/super-intel.c index 876e077..be0313d 100644 --- a/super-intel.c +++ b/super-intel.c @@ -11823,12 +11823,12 @@ static int imsm_fix_size_mismatch(struct supertype *st, int subarray_index) if (calc_size == d_size || dev->vol.migr_type == MIGR_GEN_MIGR) continue; - /* There is a difference, verify that imsm_dev_size is - * rounded correctly and push update. + /* There is a difference, confirm that imsm_dev_size is + * smaller and push update. */ - if (d_size != round_size_to_mb(d_size, disc_count)) { - dprintf("imsm: Size of volume %d is not rounded correctly\n", - i); + if (d_size > calc_size) { + pr_err("imsm: dev size of subarray %d is incorrect\n", + i); goto exit; } memset(&geo, 0, sizeof(struct geo_params)); -- 2.7.5