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:
Czarnowska, Anna 2011-02-14 09:27:09 +11:00 committed by NeilBrown
parent 7095bccbb0
commit 612e59d838
1 changed files with 4 additions and 3 deletions

View File

@ -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;
}
}