File 0007-Skip-clustered-devices-in-incremental.patch of Package mdadm
From b933a71334360a5829b8c4987650286b39c51363 Mon Sep 17 00:00:00 2001
From: Guoqing Jiang <gqjiang@suse.com>
Date: Wed, 10 Jun 2015 13:42:10 +0800
Subject: [PATCH 07/11] Skip clustered devices in incremental
We want the clustered devices to be started exclusively by a cluster
resource-agent. So, avoid starting using the incremental option.
This also skips a clustered md from starting during boot in inactive mode.
Signed-off-by: Goldwyn Rodrigues <rgoldwyn@suse.com>
Signed-off-by: Guoqing Jiang <gqjiang@suse.com>
Signed-off-by: NeilBrown <neilb@suse.de>
---
Incremental.c | 5 +++++
super1.c | 2 ++
2 files changed, 7 insertions(+)
diff --git a/Incremental.c b/Incremental.c
index cc03b8f..95e29a8 100644
--- a/Incremental.c
+++ b/Incremental.c
@@ -234,6 +234,11 @@ int Incremental(struct mddev_dev *devlist, struct context *c,
devname);
goto out;
}
+ /* Skip the clustered ones. This should be started by
+ * clustering resource agents
+ */
+ if (info.array.state & (1 << MD_SB_CLUSTERED))
+ goto out;
/* 3a/ if not, check for homehost match. If no match, continue
* but don't trust the 'name' in the array. Thus a 'random' minor
diff --git a/super1.c b/super1.c
index fa1b356..78524dd 100644
--- a/super1.c
+++ b/super1.c
@@ -896,6 +896,8 @@ static void getinfo_super1(struct supertype *st, struct mdinfo *info, char *map)
info->array.state =
(__le64_to_cpu(sb->resync_offset) == MaxSector)
? 1 : 0;
+ if (__le32_to_cpu(bsb->nodes) > 1)
+ info->array.state |= (1 << MD_SB_CLUSTERED);
info->data_offset = __le64_to_cpu(sb->data_offset);
info->component_size = __le64_to_cpu(sb->size);
--
1.7.12.4