summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--lib/config/defaults.h1
-rw-r--r--lib/metadata/metadata-exported.h2
-rw-r--r--lib/metadata/metadata.c1
-rw-r--r--tools/toollib.c2
4 files changed, 6 insertions, 0 deletions
diff --git a/lib/config/defaults.h b/lib/config/defaults.h
index 3c383d0a..0d8cb9c3 100644
--- a/lib/config/defaults.h
+++ b/lib/config/defaults.h
@@ -61,6 +61,7 @@
#define DEFAULT_STRIPESIZE 64 /* KB */
#define DEFAULT_PVMETADATASIZE 255
#define DEFAULT_PVMETADATACOPIES 1
+#define DEFAULT_VGMETADATACOPIES 0
#define DEFAULT_LABELSECTOR UINT64_C(1)
#define DEFAULT_READ_AHEAD "auto"
#define DEFAULT_UDEV_RULES 1
diff --git a/lib/metadata/metadata-exported.h b/lib/metadata/metadata-exported.h
index 2e066618..5d87bb30 100644
--- a/lib/metadata/metadata-exported.h
+++ b/lib/metadata/metadata-exported.h
@@ -287,6 +287,7 @@ struct volume_group {
* 0 for success else appropriate FAILURE_* bits set.
*/
uint32_t read_status;
+ uint32_t mda_copies; /* target number of mdas for this VG */
};
/* There will be one area for each stripe */
@@ -896,6 +897,7 @@ struct vgcreate_params {
size_t max_lv;
alloc_policy_t alloc;
int clustered; /* FIXME: put this into a 'status' variable instead? */
+ uint32_t metadata_copies;
};
int vgcreate_params_validate(struct cmd_context *cmd,
diff --git a/lib/metadata/metadata.c b/lib/metadata/metadata.c
index 89d84c10..14ae93e2 100644
--- a/lib/metadata/metadata.c
+++ b/lib/metadata/metadata.c
@@ -910,6 +910,7 @@ struct volume_group *vg_create(struct cmd_context *cmd, const char *vg_name)
vg->max_pv = DEFAULT_MAX_PV;
vg->alloc = DEFAULT_ALLOC_POLICY;
+ vg->mda_copies = DEFAULT_VGMETADATACOPIES;
vg->pv_count = 0;
dm_list_init(&vg->pvs);
diff --git a/tools/toollib.c b/tools/toollib.c
index e6791e23..02b06fdc 100644
--- a/tools/toollib.c
+++ b/tools/toollib.c
@@ -1187,6 +1187,7 @@ void vgcreate_params_set_defaults(struct vgcreate_params *vp_def,
vp_def->max_lv = vg->max_lv;
vp_def->alloc = vg->alloc;
vp_def->clustered = vg_is_clustered(vg);
+ vp_def->metadata_copies = vg->mda_copies;
} else {
vp_def->vg_name = NULL;
vp_def->extent_size = DEFAULT_EXTENT_SIZE * 2;
@@ -1194,6 +1195,7 @@ void vgcreate_params_set_defaults(struct vgcreate_params *vp_def,
vp_def->max_lv = DEFAULT_MAX_LV;
vp_def->alloc = DEFAULT_ALLOC_POLICY;
vp_def->clustered = DEFAULT_CLUSTERED;
+ vp_def->metadata_copies = DEFAULT_VGMETADATACOPIES;
}
}