diff options
author | David Teigland <teigland@redhat.com> | 2022-12-08 16:42:04 -0600 |
---|---|---|
committer | David Teigland <teigland@redhat.com> | 2022-12-08 16:53:36 -0600 |
commit | fa7fe5cbbe927d13a8b93aba24640ce5d8c11896 (patch) | |
tree | d60e60cc263ffe4357c24bcd0ab71b94a6e46268 /tools | |
parent | 9ce55a43d0165da9827e7b8e75bf25583a571e89 (diff) | |
download | lvm2-fa7fe5cbbe927d13a8b93aba24640ce5d8c11896.tar.gz |
writecache: support settings metadata_only and pause_writeback
Two new settings for tuning dm-writecache.
Diffstat (limited to 'tools')
-rw-r--r-- | tools/lvchange.c | 10 | ||||
-rw-r--r-- | tools/toollib.c | 14 |
2 files changed, 24 insertions, 0 deletions
diff --git a/tools/lvchange.c b/tools/lvchange.c index dfbefa000..db63eb9ea 100644 --- a/tools/lvchange.c +++ b/tools/lvchange.c @@ -665,6 +665,16 @@ static int _lvchange_writecache(struct cmd_context *cmd, seg->writecache_settings.max_age = settings.max_age; set_count++; } + if (settings.metadata_only_set) { + seg->writecache_settings.metadata_only_set = settings.metadata_only_set; + seg->writecache_settings.metadata_only = settings.metadata_only; + set_count++; + } + if (settings.pause_writeback_set) { + seg->writecache_settings.pause_writeback_set = settings.pause_writeback_set; + seg->writecache_settings.pause_writeback = settings.pause_writeback; + set_count++; + } if (settings.new_key && settings.new_val) { seg->writecache_settings.new_key = settings.new_key; seg->writecache_settings.new_val = settings.new_val; diff --git a/tools/toollib.c b/tools/toollib.c index ae6f311ba..d52c9e342 100644 --- a/tools/toollib.c +++ b/tools/toollib.c @@ -1473,6 +1473,20 @@ static int _get_one_writecache_setting(struct cmd_context *cmd, struct writecach return 1; } + if (!strncmp(key, "metadata_only", strlen("metadata_only"))) { + if (sscanf(val, "%u", &settings->metadata_only) != 1) + goto_bad; + settings->metadata_only_set = 1; + return 1; + } + + if (!strncmp(key, "pause_writeback", strlen("pause_writeback"))) { + if (sscanf(val, "%u", &settings->pause_writeback) != 1) + goto_bad; + settings->pause_writeback_set = 1; + return 1; + } + if (settings->new_key) { log_error("Setting %s is not recognized. Only one unrecognized setting is allowed.", key); return 0; |