110
110
{"detail-platform", 0, 0, DetailPlatform},
111
111
{"kill-subarray", 1, 0, KillSubarray},
112
112
{"update-subarray", 1, 0, UpdateSubarray},
113
{"udev-rules", 2, 0, UdevRules},
115
116
{"monitor", 0, 0, 'F'},
117
118
/* after those will normally come the name of the md device */
118
119
{"help", 0, 0, 'h'},
119
{"help-options",0,0,'h'},
120
{"help-options",0,0, HelpOptions},
120
121
{"version", 0, 0, 'V'},
121
122
{"verbose", 0, 0, 'v'},
122
123
{"quiet", 0, 0, 'q'},
124
125
/* For create or build: */
125
{"chunk", 1, 0, 'c'},
126
{"rounding", 1, 0, 'c'}, /* for linear, chunk is really a rounding number */
126
{"chunk", 1, 0, ChunkSize},
127
{"rounding", 1, 0, ChunkSize}, /* for linear, chunk is really a
127
129
{"level", 1, 0, 'l'}, /* 0,1,4,5,6,linear */
128
{"parity", 1, 0, 'p'}, /* {left,right}-{a,}symmetric */
129
{"layout", 1, 0, 'p'},
130
{"parity", 1, 0, Layout}, /* {left,right}-{a,}symmetric */
131
{"layout", 1, 0, Layout},
130
132
{"raid-disks",1, 0, 'n'},
131
133
{"raid-devices",1, 0, 'n'},
132
134
{"spare-disks",1,0, 'x'},
133
135
{"spare-devices",1,0, 'x'},
134
136
{"size", 1, 0, 'z'},
135
{"auto", 1, 0, 'a'}, /* also for --assemble */
137
{"auto", 1, 0, Auto}, /* also for --assemble */
136
138
{"assume-clean",0,0, AssumeClean },
137
139
{"metadata", 1, 0, 'e'}, /* superblock format */
138
{"bitmap", 1, 0, 'b'},
140
{"bitmap", 1, 0, Bitmap},
139
141
{"bitmap-chunk", 1, 0, BitmapChunk},
140
142
{"write-behind", 2, 0, WriteBehind},
141
{"write-mostly",0, 0, 'W'},
143
{"write-mostly",0, 0, WriteMostly},
142
144
{"re-add", 0, 0, ReAdd},
143
145
{"homehost", 1, 0, HomeHost},
145
{"auto-update-homehost", 0, 0, AutoHomeHost},
147
146
{"symlinks", 1, 0, Symlinks},
149
148
/* For assemble */
150
149
{"uuid", 1, 0, 'u'},
151
{"super-minor",1,0, 'm'},
150
{"super-minor",1,0, SuperMinor},
152
151
{"name", 1, 0, 'N'},
153
{"config", 1, 0, 'c'},
152
{"config", 1, 0, ConfigFile},
154
153
{"scan", 0, 0, 's'},
155
{"force", 0, 0, 'f'},
154
{"force", 0, 0, Force},
156
155
{"update", 1, 0, 'U'},
160
{"remove", 0, 0, 'r'},
162
{"set-faulty",0, 0, 'f'},
159
{"remove", 0, 0, Remove},
160
{"fail", 0, 0, Fail},
161
{"set-faulty",0, 0, Fail},
163
162
{"run", 0, 0, 'R'},
164
163
{"stop", 0, 0, 'S'},
165
164
{"readonly", 0, 0, 'o'},
166
165
{"readwrite", 0, 0, 'w'},
167
166
{"no-degraded",0,0, NoDegraded },
167
{"wait", 0, 0, WaitOpt},
169
168
{"wait-clean", 0, 0, Waitclean },
171
170
/* For Detail/Examine */
172
{"brief", 0, 0, 'b'},
171
{"brief", 0, 0, Brief},
173
172
{"export", 0, 0, 'Y'},
174
173
{"sparc2.2", 0, 0, Sparc22},
175
174
{"test", 0, 0, 't'},
177
176
/* For Follow/monitor */
179
{"program", 1, 0, 'p'},
180
{"alert", 1, 0, 'p'},
181
{"increment", 1, 0, 'r'},
177
{"mail", 1, 0, EMail},
178
{"program", 1, 0, ProgramOpt},
179
{"alert", 1, 0, ProgramOpt},
180
{"increment", 1, 0, Increment},
182
181
{"delay", 1, 0, 'd'},
183
{"daemonise", 0, 0, 'f'},
184
{"daemonize", 0, 0, 'f'},
182
{"daemonise", 0, 0, Fork},
183
{"daemonize", 0, 0, Fork},
185
184
{"oneshot", 0, 0, '1'},
186
185
{"pid-file", 1, 0, 'i'},
187
186
{"syslog", 0, 0, 'y'},
187
{"no-sharing", 0, 0, NoSharing},
189
190
{"backup-file", 1,0, BackupFile},
191
{"invalid-backup",0,0,InvalidBackup},
190
192
{"array-size", 1, 0, 'Z'},
192
194
/* For Incremental */
193
{"rebuild-map", 0, 0, 'r'},
195
{"rebuild-map", 0, 0, RebuildMapOpt},
196
{"path", 1, 0, IncrementalPath},
597
/* name/number mappings */
599
mapping_t r5layout[] = {
600
{ "left-asymmetric", ALGORITHM_LEFT_ASYMMETRIC},
601
{ "right-asymmetric", ALGORITHM_RIGHT_ASYMMETRIC},
602
{ "left-symmetric", ALGORITHM_LEFT_SYMMETRIC},
603
{ "right-symmetric", ALGORITHM_RIGHT_SYMMETRIC},
605
{ "default", ALGORITHM_LEFT_SYMMETRIC},
606
{ "la", ALGORITHM_LEFT_ASYMMETRIC},
607
{ "ra", ALGORITHM_RIGHT_ASYMMETRIC},
608
{ "ls", ALGORITHM_LEFT_SYMMETRIC},
609
{ "rs", ALGORITHM_RIGHT_SYMMETRIC},
611
{ "parity-first", ALGORITHM_PARITY_0},
612
{ "parity-last", ALGORITHM_PARITY_N},
613
{ "ddf-zero-restart", ALGORITHM_RIGHT_ASYMMETRIC},
614
{ "ddf-N-restart", ALGORITHM_LEFT_ASYMMETRIC},
615
{ "ddf-N-continue", ALGORITHM_LEFT_SYMMETRIC},
619
mapping_t r6layout[] = {
620
{ "left-asymmetric", ALGORITHM_LEFT_ASYMMETRIC},
621
{ "right-asymmetric", ALGORITHM_RIGHT_ASYMMETRIC},
622
{ "left-symmetric", ALGORITHM_LEFT_SYMMETRIC},
623
{ "right-symmetric", ALGORITHM_RIGHT_SYMMETRIC},
625
{ "default", ALGORITHM_LEFT_SYMMETRIC},
626
{ "la", ALGORITHM_LEFT_ASYMMETRIC},
627
{ "ra", ALGORITHM_RIGHT_ASYMMETRIC},
628
{ "ls", ALGORITHM_LEFT_SYMMETRIC},
629
{ "rs", ALGORITHM_RIGHT_SYMMETRIC},
631
{ "parity-first", ALGORITHM_PARITY_0},
632
{ "parity-last", ALGORITHM_PARITY_N},
633
{ "ddf-zero-restart", ALGORITHM_ROTATING_ZERO_RESTART},
634
{ "ddf-N-restart", ALGORITHM_ROTATING_N_RESTART},
635
{ "ddf-N-continue", ALGORITHM_ROTATING_N_CONTINUE},
637
{ "left-asymmetric-6", ALGORITHM_LEFT_ASYMMETRIC_6},
638
{ "right-asymmetric-6", ALGORITHM_RIGHT_ASYMMETRIC_6},
639
{ "left-symmetric-6", ALGORITHM_LEFT_SYMMETRIC_6},
640
{ "right-symmetric-6", ALGORITHM_RIGHT_SYMMETRIC_6},
641
{ "parity-first-6", ALGORITHM_PARITY_0_6},
647
{ "linear", LEVEL_LINEAR},
658
{ "multipath", LEVEL_MULTIPATH},
659
{ "mp", LEVEL_MULTIPATH},
664
{ "faulty", LEVEL_FAULTY},
665
{ "container", LEVEL_CONTAINER},
670
mapping_t modes[] = {
671
{ "assemble", ASSEMBLE},
676
{ "monitor", MONITOR},
678
{ "incremental", INCREMENTAL},
679
{ "auto-detect", AUTODETECT},
682
mapping_t faultylayout[] = {
683
{ "write-transient", WriteTransient },
684
{ "wt", WriteTransient },
685
{ "read-transient", ReadTransient },
686
{ "rt", ReadTransient },
687
{ "write-persistent", WritePersistent },
688
{ "wp", WritePersistent },
689
{ "read-persistent", ReadPersistent },
690
{ "rp", ReadPersistent },
691
{ "write-all", WriteAll },
693
{ "read-fixable", ReadFixable },
694
{ "rf", ReadFixable },
696
{ "clear", ClearErrors},
697
{ "flush", ClearFaults},
698
{ "none", ClearErrors},
699
{ "default", ClearErrors},