diff options
author | NeilBrown <neilb@suse.com> | 2016-03-10 08:06:59 +0100 |
---|---|---|
committer | Jes Sorensen <Jes.Sorensen@redhat.com> | 2016-03-10 17:42:41 +0100 |
commit | eddaacc304ba34a28ebba4b0239dd2da072b54bb (patch) | |
tree | d954d6a5e1e6cf2e8414a9a21adcb504b2a09535 /super-ddf.c | |
parent | super-intel: Make print_found_intel_controllers() return void (diff) | |
download | mdadm-eddaacc304ba34a28ebba4b0239dd2da072b54bb.tar.xz mdadm-eddaacc304ba34a28ebba4b0239dd2da072b54bb.zip |
ddf: use 64bit 'size', not 32bit 'info->size' for create.
The 'size' field of mdu_disk_info_t is 32bit and should not be used
except for legacy ioctls. super-ddf got this wrong :-(
This change makes it possible to create ddf arrays which used more than
2TB of each device.
Reported-by: Dan Russell <dpr@aol.com>
Signed-off-by: NeilBrown <neilb@suse.com>
Signed-off-by: Jes Sorensen <Jes.Sorensen@redhat.com>
Diffstat (limited to 'super-ddf.c')
-rw-r--r-- | super-ddf.c | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/super-ddf.c b/super-ddf.c index faaf0a7c..1707ad1e 100644 --- a/super-ddf.c +++ b/super-ddf.c @@ -2688,10 +2688,10 @@ static int init_super_ddf_bvd(struct supertype *st, free(vcl); return 0; } - vc->blocks = cpu_to_be64(info->size * 2); + vc->blocks = cpu_to_be64(size * 2); vc->array_blocks = cpu_to_be64( calc_array_size(info->level, info->raid_disks, info->layout, - info->chunk_size, info->size*2)); + info->chunk_size, size * 2)); memset(vc->pad1, 0xff, 8); vc->spare_refs[0] = cpu_to_be32(0xffffffff); vc->spare_refs[1] = cpu_to_be32(0xffffffff); |