config: restore the possibility of a NULL homehost
As homehost defaults to the system name it is not possible to specify a NULL homehost. This patch restored this ability with either --homehost="" or --homehost="<none>". This allows the creation of v1.x arrays without a "hostname:" prefix in the name. Signed-off-by: NeilBrown <neilb@suse.de>
This commit is contained in:
parent
815c8a7e0b
commit
0f23aa88f8
7
config.c
7
config.c
|
@ -589,9 +589,12 @@ void homehostline(char *line)
|
|||
for (w=dl_next(line); w != line ; w=dl_next(w)) {
|
||||
if (strcasecmp(w, "<ignore>")==0)
|
||||
require_homehost = 0;
|
||||
else if (home_host == NULL)
|
||||
home_host = strdup(w);
|
||||
else if (home_host == NULL) {
|
||||
if (strcasecmp(w, "<none>")==0)
|
||||
home_host = strdup("");
|
||||
else
|
||||
home_host = strdup(w);
|
||||
}else
|
||||
fprintf(stderr, Name ": excess host name on HOMEHOST line: %s - ignored\n",
|
||||
w);
|
||||
}
|
||||
|
|
6
mdadm.c
6
mdadm.c
|
@ -1167,12 +1167,16 @@ int main(int argc, char *argv[])
|
|||
|
||||
if (homehost == NULL)
|
||||
homehost = conf_get_homehost(&require_homehost);
|
||||
if (homehost == NULL || strcmp(homehost, "<system>")==0) {
|
||||
if (homehost == NULL || strcasecmp(homehost, "<system>")==0) {
|
||||
if (gethostname(sys_hostname, sizeof(sys_hostname)) == 0) {
|
||||
sys_hostname[sizeof(sys_hostname)-1] = 0;
|
||||
homehost = sys_hostname;
|
||||
}
|
||||
}
|
||||
if (homehost && (!homehost[0] || strcasecmp(homehost, "<none>") == 0)) {
|
||||
homehost = NULL;
|
||||
require_homehost = 0;
|
||||
}
|
||||
|
||||
if ((mode != MISC || devmode != 'E') &&
|
||||
geteuid() != 0) {
|
||||
|
|
11
mdadm.conf.5
11
mdadm.conf.5
|
@ -339,14 +339,15 @@ line gives a default value for the
|
|||
.B \-\-homehost=
|
||||
option to mdadm. There should normally be only one other word on the line.
|
||||
It should either be a host name, or one of the special words
|
||||
.B <system>
|
||||
.BR <system>,
|
||||
.B <none>
|
||||
and
|
||||
.BR <ignore> .
|
||||
If
|
||||
.B <system>
|
||||
is given, then the
|
||||
.BR gethostname ( 2 )
|
||||
systemcall is used to get the host name.
|
||||
systemcall is used to get the host name. This is the default.
|
||||
|
||||
If
|
||||
.B <ignore>
|
||||
|
@ -362,6 +363,12 @@ more that one other word on the
|
|||
.B HOMEHOST
|
||||
line.
|
||||
|
||||
If
|
||||
.B <none>
|
||||
is given, then the default of using
|
||||
.BR gethostname ( 2 )
|
||||
is over-ridden and no homehost name is assumed.
|
||||
|
||||
When arrays are created, this host name will be stored in the
|
||||
metadata. When arrays are assembled using auto-assembly, arrays which
|
||||
do not record the correct homehost name in their metadata will be
|
||||
|
|
Loading…
Reference in New Issue