From: Adam Kwolek Date: Sun, 2 Oct 2011 22:57:12 +0000 (+1100) Subject: Move code to get_data_disks() function X-Git-Tag: mdadm-3.2.3~148 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=577e8448e99454b12bdbb60cf8fe9f0c532e544c;p=thirdparty%2Fmdadm.git Move code to get_data_disks() function Move code to function for code reuse. Signed-off-by: Adam Kwolek Signed-off-by: NeilBrown --- diff --git a/mdadm.h b/mdadm.h index 989d5638..f219c959 100644 --- a/mdadm.h +++ b/mdadm.h @@ -1157,6 +1157,7 @@ extern unsigned long long get_component_size(int fd); extern void remove_partitions(int fd); extern int test_partition(int fd); extern int test_partition_from_id(dev_t id); +extern int get_data_disks(int level, int layout, int raid_disks); extern unsigned long long calc_array_size(int level, int raid_disks, int layout, int chunksize, unsigned long long devsize); extern int flush_metadata_updates(struct supertype *st); diff --git a/util.c b/util.c index 0ea7e0d2..50c98c1c 100644 --- a/util.c +++ b/util.c @@ -702,6 +702,12 @@ void print_r10_layout(int layout) unsigned long long calc_array_size(int level, int raid_disks, int layout, int chunksize, unsigned long long devsize) +{ + devsize &= ~(unsigned long long)((chunksize>>9)-1); + return get_data_disks(level, layout, raid_disks) * devsize; +} + +int get_data_disks(int level, int layout, int raid_disks) { int data_disks = 0; switch (level) { @@ -713,8 +719,8 @@ unsigned long long calc_array_size(int level, int raid_disks, int layout, case 10: data_disks = raid_disks / (layout & 255) / ((layout>>8)&255); break; } - devsize &= ~(unsigned long long)((chunksize>>9)-1); - return data_disks * devsize; + + return data_disks; } #if !defined(MDASSEMBLE) || defined(MDASSEMBLE) && defined(MDASSEMBLE_AUTO)