From 83b6208e890f29115c56a252de82dfd7c50488d0 Mon Sep 17 00:00:00 2001 From: Neil Brown Date: Tue, 23 May 2006 06:33:28 +0000 Subject: When assembly arrays using incomplete detail, prefer arrays built for this host. i.e. if assembling with --name or --super-minor, then if we find two different arrays with the same apparent identity, and one was built for 'this' host, then prefer that one instead of giving up in disgust. Signed-off-by: Neil Brown --- super1.c | 11 +++++++++++ 1 file changed, 11 insertions(+) (limited to 'super1.c') diff --git a/super1.c b/super1.c index b24bcea..488aabe 100644 --- a/super1.c +++ b/super1.c @@ -357,6 +357,16 @@ static void brief_detail_super1(void *sbv) #endif +static int match_home1(void *sbv, char *homehost) +{ + struct mdp_superblock_1 *sb = sbv; + int l = homehost ? strlen(homehost) : 0; + + return (l > 0 && l < 32 && + sb->set_name[l] == ':' && + strncmp(sb->set_name, homehost, l) == 0); +} + static void uuid_from_super1(int uuid[4], void * sbv) { struct mdp_superblock_1 *super = sbv; @@ -1191,6 +1201,7 @@ struct superswitch super1 = { .detail_super = detail_super1, .brief_detail_super = brief_detail_super1, #endif + .match_home = match_home1, .uuid_from_super = uuid_from_super1, .getinfo_super = getinfo_super1, .update_super = update_super1, -- cgit