summaryrefslogtreecommitdiff
path: root/lib/writecache/writecache.c
diff options
context:
space:
mode:
Diffstat (limited to 'lib/writecache/writecache.c')
-rw-r--r--lib/writecache/writecache.c20
1 files changed, 20 insertions, 0 deletions
diff --git a/lib/writecache/writecache.c b/lib/writecache/writecache.c
index aa2113271..8ccaca2d0 100644
--- a/lib/writecache/writecache.c
+++ b/lib/writecache/writecache.c
@@ -135,6 +135,18 @@ static int _writecache_text_import(struct lv_segment *seg,
seg->writecache_settings.max_age_set = 1;
}
+ if (dm_config_has_node(sn, "metadata_only")) {
+ if (!dm_config_get_uint32(sn, "metadata_only", &seg->writecache_settings.metadata_only))
+ return SEG_LOG_ERROR("Unknown writecache_setting in");
+ seg->writecache_settings.metadata_only_set = 1;
+ }
+
+ if (dm_config_has_node(sn, "pause_writeback")) {
+ if (!dm_config_get_uint32(sn, "pause_writeback", &seg->writecache_settings.pause_writeback))
+ return SEG_LOG_ERROR("Unknown writecache_setting in");
+ seg->writecache_settings.pause_writeback_set = 1;
+ }
+
if (dm_config_has_node(sn, "writecache_setting_key")) {
const char *key;
const char *val;
@@ -207,6 +219,14 @@ static int _writecache_text_export(const struct lv_segment *seg,
outf(f, "max_age = %u", seg->writecache_settings.max_age);
}
+ if (seg->writecache_settings.metadata_only_set) {
+ outf(f, "metadata_only = %u", seg->writecache_settings.metadata_only);
+ }
+
+ if (seg->writecache_settings.pause_writeback_set) {
+ outf(f, "pause_writeback = %u", seg->writecache_settings.pause_writeback);
+ }
+
if (seg->writecache_settings.new_key && seg->writecache_settings.new_val) {
outf(f, "writecache_setting_key = \"%s\"",
seg->writecache_settings.new_key);