diff options
author | Adam Kwolek <adam.kwolek@intel.com> | 2011-10-03 09:57:12 +1100 |
---|---|---|
committer | NeilBrown <neilb@suse.de> | 2011-10-03 09:57:12 +1100 |
commit | 577e8448e99454b12bdbb60cf8fe9f0c532e544c (patch) | |
tree | 75f3973ad32f0eea7c71fbebee68c05d4b2ca35c | |
parent | 2dddadb0f713c5bb335a80518b42c152ef955d27 (diff) |
Move code to get_data_disks() function
Move code to function for code reuse.
Signed-off-by: Adam Kwolek <adam.kwolek@intel.com>
Signed-off-by: NeilBrown <neilb@suse.de>
-rw-r--r-- | mdadm.h | 1 | ||||
-rw-r--r-- | util.c | 10 |
2 files changed, 9 insertions, 2 deletions
@@ -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); @@ -703,6 +703,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) { case 0: data_disks = raid_disks; break; @@ -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) |