diff options
Diffstat (limited to 'init')
-rw-r--r-- | init/do_mounts_md.c | 22 |
1 files changed, 9 insertions, 13 deletions
diff --git a/init/do_mounts_md.c b/init/do_mounts_md.c index 3fbc3555ce96..f6f36806f84a 100644 --- a/init/do_mounts_md.c +++ b/init/do_mounts_md.c | |||
@@ -17,7 +17,7 @@ static int __initdata raid_noautodetect, raid_autopart; | |||
17 | static struct { | 17 | static struct { |
18 | int minor; | 18 | int minor; |
19 | int partitioned; | 19 | int partitioned; |
20 | int pers; | 20 | int level; |
21 | int chunk; | 21 | int chunk; |
22 | char *device_names; | 22 | char *device_names; |
23 | } md_setup_args[MAX_MD_DEVS] __initdata; | 23 | } md_setup_args[MAX_MD_DEVS] __initdata; |
@@ -47,7 +47,7 @@ extern int mdp_major; | |||
47 | */ | 47 | */ |
48 | static int __init md_setup(char *str) | 48 | static int __init md_setup(char *str) |
49 | { | 49 | { |
50 | int minor, level, factor, fault, pers, partitioned = 0; | 50 | int minor, level, factor, fault, partitioned = 0; |
51 | char *pername = ""; | 51 | char *pername = ""; |
52 | char *str1; | 52 | char *str1; |
53 | int ent; | 53 | int ent; |
@@ -78,7 +78,7 @@ static int __init md_setup(char *str) | |||
78 | } | 78 | } |
79 | if (ent >= md_setup_ents) | 79 | if (ent >= md_setup_ents) |
80 | md_setup_ents++; | 80 | md_setup_ents++; |
81 | switch (get_option(&str, &level)) { /* RAID Personality */ | 81 | switch (get_option(&str, &level)) { /* RAID level */ |
82 | case 2: /* could be 0 or -1.. */ | 82 | case 2: /* could be 0 or -1.. */ |
83 | if (level == 0 || level == LEVEL_LINEAR) { | 83 | if (level == 0 || level == LEVEL_LINEAR) { |
84 | if (get_option(&str, &factor) != 2 || /* Chunk Size */ | 84 | if (get_option(&str, &factor) != 2 || /* Chunk Size */ |
@@ -86,16 +86,12 @@ static int __init md_setup(char *str) | |||
86 | printk(KERN_WARNING "md: Too few arguments supplied to md=.\n"); | 86 | printk(KERN_WARNING "md: Too few arguments supplied to md=.\n"); |
87 | return 0; | 87 | return 0; |
88 | } | 88 | } |
89 | md_setup_args[ent].pers = level; | 89 | md_setup_args[ent].level = level; |
90 | md_setup_args[ent].chunk = 1 << (factor+12); | 90 | md_setup_args[ent].chunk = 1 << (factor+12); |
91 | if (level == LEVEL_LINEAR) { | 91 | if (level == LEVEL_LINEAR) |
92 | pers = LINEAR; | ||
93 | pername = "linear"; | 92 | pername = "linear"; |
94 | } else { | 93 | else |
95 | pers = RAID0; | ||
96 | pername = "raid0"; | 94 | pername = "raid0"; |
97 | } | ||
98 | md_setup_args[ent].pers = pers; | ||
99 | break; | 95 | break; |
100 | } | 96 | } |
101 | /* FALL THROUGH */ | 97 | /* FALL THROUGH */ |
@@ -103,7 +99,7 @@ static int __init md_setup(char *str) | |||
103 | str = str1; | 99 | str = str1; |
104 | /* FALL THROUGH */ | 100 | /* FALL THROUGH */ |
105 | case 0: | 101 | case 0: |
106 | md_setup_args[ent].pers = 0; | 102 | md_setup_args[ent].level = LEVEL_NONE; |
107 | pername="super-block"; | 103 | pername="super-block"; |
108 | } | 104 | } |
109 | 105 | ||
@@ -190,10 +186,10 @@ static void __init md_setup_drive(void) | |||
190 | continue; | 186 | continue; |
191 | } | 187 | } |
192 | 188 | ||
193 | if (md_setup_args[ent].pers) { | 189 | if (md_setup_args[ent].level != LEVEL_NONE) { |
194 | /* non-persistent */ | 190 | /* non-persistent */ |
195 | mdu_array_info_t ainfo; | 191 | mdu_array_info_t ainfo; |
196 | ainfo.level = pers_to_level(md_setup_args[ent].pers); | 192 | ainfo.level = md_setup_args[ent].level; |
197 | ainfo.size = 0; | 193 | ainfo.size = 0; |
198 | ainfo.nr_disks =0; | 194 | ainfo.nr_disks =0; |
199 | ainfo.raid_disks =0; | 195 | ainfo.raid_disks =0; |