diff --git a/lib/config/defaults.h b/lib/config/defaults.h index 3c383d0ab..0d8cb9c35 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 2e0666183..5d87bb30b 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 89d84c105..14ae93e2d 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 e6791e23b..02b06fdc9 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; } }