summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCzarnowska, Anna <anna.czarnowska@intel.com>2012-04-02 10:18:37 +1000
committerNeilBrown <neilb@suse.de>2012-04-02 10:18:37 +1000
commit9126b9a816b1576f58718dbb71bcaff2bfc274e3 (patch)
tree9274273ea90a37cb710c3927a24a2e632796355c
parent2cc699afbf0a05baf02d26309eb4ad0e4e81c5d5 (diff)
downloadmdadm-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.c24
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);