fix: imsm: size must be in K for rounding to chunk
chunk is in K so size must be converted to K before it is rounded. Otherwise we may get wrong freesize returned resulting in creation failure. Signed-off-by: Anna Czarnowska <anna.czarnowska@intel.com> Signed-off-by: NeilBrown <neilb@suse.de>
This commit is contained in:
parent
7095bccbb0
commit
612e59d838
|
@ -4384,7 +4384,8 @@ static int reserve_space(struct supertype *st, int raiddisks,
|
|||
maxsize = merge_extents(super, extent_cnt);
|
||||
minsize = size;
|
||||
if (size == 0)
|
||||
minsize = chunk;
|
||||
/* chunk is in K */
|
||||
minsize = chunk * 2;
|
||||
|
||||
if (cnt < raiddisks ||
|
||||
(super->orom && used && used != raiddisks) ||
|
||||
|
@ -4397,8 +4398,8 @@ static int reserve_space(struct supertype *st, int raiddisks,
|
|||
if (size == 0) {
|
||||
size = maxsize;
|
||||
if (chunk) {
|
||||
size /= chunk;
|
||||
size *= chunk;
|
||||
size /= 2 * chunk;
|
||||
size *= 2 * chunk;
|
||||
}
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in New Issue