imsm: Add function imsm_get_free_size()

Add function imsm_imsm_get_free_size() using part of code from function
reserve_space().

Signed-off-by: Adam Kwolek <adam.kwolek@intel.com>
Signed-off-by: NeilBrown <neilb@suse.de>
This commit is contained in:
Adam Kwolek 2012-04-13 16:52:04 +02:00 committed by NeilBrown
parent 65a9798b58
commit 13bcac9059
1 changed files with 24 additions and 1 deletions

View File

@ -6108,7 +6108,7 @@ static int validate_geometry_imsm_volume(struct supertype *st, int level,
return 1;
}
static int reserve_space(struct supertype *st, int raiddisks,
static int imsm_get_free_size(struct supertype *st, int raiddisks,
unsigned long long size, int chunk,
unsigned long long *freesize)
{
@ -6186,9 +6186,32 @@ static int reserve_space(struct supertype *st, int raiddisks,
*freesize = size;
dprintf("imsm: imsm_get_free_size() returns : %llu\n", size);
return 1;
}
static int reserve_space(struct supertype *st, int raiddisks,
unsigned long long size, int chunk,
unsigned long long *freesize)
{
struct intel_super *super = st->sb;
struct dl *dl;
int cnt;
int rv = 0;
rv = imsm_get_free_size(st, raiddisks, size, chunk, freesize);
if (rv) {
cnt = 0;
for (dl = super->disks; dl; dl = dl->next)
if (dl->e)
dl->raiddisk = cnt++;
rv = 1;
}
return rv;
}
static int validate_geometry_imsm(struct supertype *st, int level, int layout,
int raiddisks, int *chunk, unsigned long long size,
char *dev, unsigned long long *freesize,