Allow metadata handler to report that it doesn't record homehost.

For now, this means that the lack of a homehost doesn't always prevent
assembly.
Soon we will allow assembly anyway, but have different messages if
homehost isn't supported.
This commit is contained in:
NeilBrown 2008-09-18 16:06:41 +10:00
parent ffcfc735a5
commit 9362c1c80c
4 changed files with 5 additions and 5 deletions

View File

@ -339,7 +339,8 @@ int Assemble(struct supertype *st, char *mddev, int mdfd,
if (homehost) {
int first = st->ss->match_home(st, homehost);
int last = tst->ss->match_home(tst, homehost);
if (first+last == 1) {
if (first != last &&
(first == 1 || last == 1)) {
/* We can do something */
if (first) {/* just ignore this one */
if ((inargv && verbose >= 0) || verbose > 0)

View File

@ -217,7 +217,7 @@ int Incremental(char *devname, int verbose, int runstop,
/* 3a/ if not, check for homehost match. If no match, reject. */
if (!match) {
if (homehost == NULL ||
st->ss->match_home(st, homehost) == 0) {
st->ss->match_home(st, homehost) != 1) {
if (verbose >= 0)
fprintf(stderr, Name
": not found in mdadm.conf and not identified by homehost.\n");

View File

@ -446,8 +446,7 @@ extern struct superswitch {
void (*getinfo_super)(struct supertype *st, struct mdinfo *info);
/* Check if the given metadata is flagged as belonging to "this"
* host. For arrays that don't determine a minor-number, this
* can always be true (??)
* host. 0 for 'no', 1 for 'yes', -1 for "Don't record homehost"
*/
int (*match_home)(struct supertype *st, char *homehost);

View File

@ -578,7 +578,7 @@ static int match_home_imsm(struct supertype *st, char *homehost)
{
printf("%s\n", __FUNCTION__);
return 0;
return -1;
}
static void uuid_from_super_imsm(struct supertype *st, int uuid[4])