summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPeter Rajnoha <prajnoha@redhat.com>2016-03-01 15:29:27 +0100
committerPeter Rajnoha <prajnoha@redhat.com>2016-03-03 13:50:59 +0100
commitff6e124a338d1dbdde3b6280784d599e504378ef (patch)
tree82a9302078b8c84ed956c5dc36f5976bf478e122
parent74272e163de8c62208d6de41d15631cf3ecf0b2c (diff)
downloadlvm2-ff6e124a338d1dbdde3b6280784d599e504378ef.tar.gz
conf: add metadata/lvs_history_timeout configuration setting
-rw-r--r--lib/config/config_settings.h5
-rw-r--r--lib/config/defaults.h1
-rw-r--r--lib/metadata/metadata.c3
3 files changed, 8 insertions, 1 deletions
diff --git a/lib/config/config_settings.h b/lib/config/config_settings.h
index b09335168..12911091c 100644
--- a/lib/config/config_settings.h
+++ b/lib/config/config_settings.h
@@ -1367,6 +1367,11 @@ cfg(metadata_record_lvs_history_CFG, "record_lvs_history", metadata_CFG_SECTION,
"information kept in metadata for live LVs. Currently, this\n"
"feature is supported for thin and thin snapshot LVs only.\n")
+cfg(metadata_lvs_history_retention_time_CFG, "lvs_history_retention_time", metadata_CFG_SECTION, CFG_DEFAULT_COMMENTED, CFG_TYPE_INT, DEFAULT_LVS_HISTORY_RETENTION_TIME, vsn(2, 2, 145), NULL, 0, NULL,
+ "Retention time in seconds after which a record about individual\n"
+ "historical logical volume is automatically destroyed.\n"
+ "A value of 0 disables this feature.\n")
+
cfg(metadata_pvmetadatacopies_CFG, "pvmetadatacopies", metadata_CFG_SECTION, CFG_ADVANCED | CFG_DEFAULT_COMMENTED, CFG_TYPE_INT, DEFAULT_PVMETADATACOPIES, vsn(1, 0, 0), NULL, 0, NULL,
"Number of copies of metadata to store on each PV.\n"
"The --pvmetadatacopies option overrides this setting.\n"
diff --git a/lib/config/defaults.h b/lib/config/defaults.h
index 6c7060a76..fd7986c35 100644
--- a/lib/config/defaults.h
+++ b/lib/config/defaults.h
@@ -129,6 +129,7 @@
#define DEFAULT_STRIPESIZE 64 /* KB */
#define DEFAULT_RECORD_LVS_HISTORY 0
+#define DEFAULT_LVS_HISTORY_RETENTION_TIME 0
#define DEFAULT_PVMETADATAIGNORE 0
#define DEFAULT_PVMETADATASIZE 255
#define DEFAULT_PVMETADATACOPIES 1
diff --git a/lib/metadata/metadata.c b/lib/metadata/metadata.c
index 417629bb4..a5cb15ad7 100644
--- a/lib/metadata/metadata.c
+++ b/lib/metadata/metadata.c
@@ -4460,6 +4460,7 @@ struct volume_group *vg_read_internal(struct cmd_context *cmd, const char *vgnam
goto out;
}
}
+
out:
if (!*consistent && (warn_flags & WARN_INCONSISTENT)) {
if (is_orphan_vg(vgname))
@@ -6013,7 +6014,7 @@ int is_lockd_type(const char *lock_type)
int vg_strip_outdated_historical_lvs(struct volume_group *vg) {
struct glv_list *glvl, *tglvl;
time_t current_time = time(NULL);
- uint64_t threshold = 0;
+ uint64_t threshold = find_config_tree_int(vg->cmd, metadata_lvs_history_retention_time_CFG, NULL);
if (!threshold)
return 1;