diff options
author | Czarnowska, Anna <anna.czarnowska@intel.com> | 2012-04-02 10:18:37 +1000 |
---|---|---|
committer | NeilBrown <neilb@suse.de> | 2012-04-02 10:18:37 +1000 |
commit | 9126b9a816b1576f58718dbb71bcaff2bfc274e3 (patch) | |
tree | 9274273ea90a37cb710c3927a24a2e632796355c | |
parent | 2cc699afbf0a05baf02d26309eb4ad0e4e81c5d5 (diff) | |
download | mdadm-9126b9a816b1576f58718dbb71bcaff2bfc274e3.tar.gz |
check that no disk over 2TB is used to create container when no support
Creation of a container using disks over 2TB should be allowed only when orom supports large disks
Signed-off-by: Anna Czarnowska <anna.czarnowska@intel.com>
Signed-off-by: NeilBrown <neilb@suse.de>
-rw-r--r-- | super-intel.c | 24 |
1 files changed, 16 insertions, 8 deletions
diff --git a/super-intel.c b/super-intel.c index 7803a2e..1bc9e9c 100644 --- a/super-intel.c +++ b/super-intel.c @@ -5331,14 +5331,22 @@ static int validate_geometry_imsm_container(struct supertype *st, int level, return 0; } close(fd); - if (super->orom && raiddisks > super->orom->tds) { - if (verbose) - fprintf(stderr, Name ": %d exceeds maximum number of" - " platform supported disks: %d\n", - raiddisks, super->orom->tds); - - free_imsm(super); - return 0; + if (super->orom) { + if (raiddisks > super->orom->tds) { + if (verbose) + fprintf(stderr, Name ": %d exceeds maximum number of" + " platform supported disks: %d\n", + raiddisks, super->orom->tds); + free_imsm(super); + return 0; + } + if ((super->orom->attr & IMSM_OROM_ATTR_2TB_DISK) == 0 && + (ldsize >> 9) >> 32 > 0) { + if (verbose) + fprintf(stderr, Name ": %s exceeds maximum platform supported size\n", dev); + free_imsm(super); + return 0; + } } *freesize = avail_size_imsm(st, ldsize >> 9); |