From: Mariusz Tkaczyk Date: Wed, 21 Apr 2021 14:50:08 +0000 (+0200) Subject: imsm: change wrong size verification X-Git-Tag: mdadm-4.2-rc2~21 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=ff904202a4a6232e0f0dfea31a7c4a34ab08f76e;p=thirdparty%2Fmdadm.git 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 --- diff --git a/super-intel.c b/super-intel.c index 876e077c..be0313d5 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));