diff options
Diffstat (limited to 'lib/writecache/writecache.c')
-rw-r--r-- | lib/writecache/writecache.c | 20 |
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); |