v2_03_18 annotated tag has been created
by Marian Csontos
Gitweb: https://sourceware.org/git/?p=lvm2.git;a=commitdiff;h=fba794b52541452da91...
Commit: fba794b52541452da9131af594f5cd0fa7affb6d
Parent: 0000000000000000000000000000000000000000
Author: Marian Csontos <mcsontos(a)redhat.com>
AuthorDate: 2022-12-22 15:09 +0000
Committer: Marian Csontos <mcsontos(a)redhat.com>
CommitterDate: 2022-12-22 15:09 +0000
annotated tag: v2_03_18 has been created
at fba794b52541452da9131af594f5cd0fa7affb6d (tag)
tagging 2772d299174c25f054b4e5ceb0e86aec661b12f6 (commit)
replaces v2_03_17
Release 2.03.18
Bugfix release.
-----BEGIN PGP SIGNATURE-----
iQJIBAABCAAyFiEE1QGkeEQK4v0TChvouREkMeUJA58FAmOkc0gUHG1jc29udG9z
QHJlZGhhdC5jb20ACgkQuREkMeUJA5/krRAA912NJ1eyB0Mve6fKEJ/lk149s9e+
9Y5zTzzZOgvwA4msM+HR2dmYk9Sio79nv5ep/uLeSHkmjWp+6lzrWPH0WrZ46mhM
6wRR7MJgzAL+eb3dBuov+FC9GCgVdEfijsdzSXjt2L/s1/YCyU8bBcyZEHKKUBsB
wA2etif3DM8rbAczJnsO2zfHAA+GASF5KhO9tu+xf29YUvzYnHAGUgnF3BQzObG2
bpY/UZyIodjGbWZzS6ax4Xd92qoEL2aaVEeHK4va1cGDxxP+TpVUC2lWKwMM/ONF
T82b0pyXmTo6YNR7urRBBJa15R32Qmha5YvGriwAfVsckq1hur+ic76WYmJ7MIGW
/iU/B+2imc0NfG92/5ALzigosF2cu7ja2/HF/pNN1m7ZjRkj2APpI/PGIq29l9D4
G7WXppU5tYPzxfy78+mduWPjtz57KD/VXgZ09hCP2TxYEWasAZ/8InFHDG02ATc7
DLFZ1sqLI2adyAsTlIjMsQLU8HElKEKG0jAOgxPZqHg6nUJXmQae1RuhEGXYBjPj
4lqL1qQ9hdpV80j9qWf91LV2eHJYaYRT7wBnI9NqKpM/VY28jUhJE3Lt+l5D0SVS
tFh5xOXdAO3btMxqJknSNxqdlDcn3aXCDLENV/o6ZM38+Kzzym4oHfkySZobgVoT
xu4wKvFdxsqaMQw=
=xtda
-----END PGP SIGNATURE-----
David Seifert (1):
configure: allow for overriding of `readelf`
David Teigland (10):
tests: devicesfile-vpd-ids add nvme wwid
lvmlockd: fix missing closedir
lvmcache: fix strncpy len for wwid
device_id: add null id->name null check
device_id: _get_devs_with_serial_numbers add missing free
device_id: check return value of label_read_pvid
device_id: fix segfault verifying serial for non-pv
lvchange: handle unrecognized writecache setting
writecache: support settings metadata_only and pause_writeback
lvextend: fix overprovisioning check for thin lvs
Marian Csontos (2):
post-release
WHATS_NEW: update
Sam James (1):
lvmpolld: fix `strerror_r` check for musl
Tony Asleson (3):
lvmdbustest: Add test to ensure error collection
lvmdbusd: Move get_error_msg to utils
lvmdbusd: Add command_log_selection to command line
Zdenek Kabelac (8):
configure: update
dmsetup: fix udev event handling for create
man: dmsetup concise format consitency
vdo: fix reader error path
cov: remove unused header files
cov: fix buffer size usage
cov: use long type for time_t calcs
pvscan: free unused device_id
corubba (2):
report: adjust lv_active_remotely for shared VGs
report: query lvmlockd for lv_active_exclusively
1 year, 2 months
main - pre-release
by Marian Csontos
Gitweb: https://sourceware.org/git/?p=lvm2.git;a=commitdiff;h=2abb029f2a9f056a606...
Commit: 2abb029f2a9f056a6061dab6f898125dc40637ae
Parent: 2772d299174c25f054b4e5ceb0e86aec661b12f6
Author: Marian Csontos <mcsontos(a)redhat.com>
AuthorDate: Thu Dec 22 16:07:35 2022 +0100
Committer: Marian Csontos <mcsontos(a)redhat.com>
CommitterDate: Thu Dec 22 16:07:35 2022 +0100
pre-release
---
VERSION | 2 +-
VERSION_DM | 2 +-
WHATS_NEW | 2 +-
WHATS_NEW_DM | 2 +-
4 files changed, 4 insertions(+), 4 deletions(-)
diff --git a/VERSION b/VERSION
index b5c261028..54e07f9c2 100644
--- a/VERSION
+++ b/VERSION
@@ -1 +1 @@
-2.03.18(2)-git (2022-11-10)
+2.03.18(2) (2022-12-22)
diff --git a/VERSION_DM b/VERSION_DM
index c1923fa3a..9ead606c4 100644
--- a/VERSION_DM
+++ b/VERSION_DM
@@ -1 +1 @@
-1.02.189-git (2022-11-10)
+1.02.189 (2022-12-22)
diff --git a/WHATS_NEW b/WHATS_NEW
index bfa33aa7a..8790cfc51 100644
--- a/WHATS_NEW
+++ b/WHATS_NEW
@@ -1,4 +1,4 @@
-Version 2.03.18 -
+Version 2.03.18 - 22nd December 2022
====================================
Fix issues reported by coverity scan.
Fix warning for thin pool overprovisioning on lvextend (2.03.17).
diff --git a/WHATS_NEW_DM b/WHATS_NEW_DM
index 71eee439f..35e1d990f 100644
--- a/WHATS_NEW_DM
+++ b/WHATS_NEW_DM
@@ -1,4 +1,4 @@
-Version 1.02.189 -
+Version 1.02.189 - 22nd December 2022
=====================================
Improve 'dmsetup create' without given table line with new kernels.
1 year, 2 months
main - WHATS_NEW: update
by Marian Csontos
Gitweb: https://sourceware.org/git/?p=lvm2.git;a=commitdiff;h=2772d299174c25f054b...
Commit: 2772d299174c25f054b4e5ceb0e86aec661b12f6
Parent: edd6d84159f4d540c8283771da6702971518ccd7
Author: Marian Csontos <mcsontos(a)redhat.com>
AuthorDate: Thu Dec 22 16:06:04 2022 +0100
Committer: Marian Csontos <mcsontos(a)redhat.com>
CommitterDate: Thu Dec 22 16:06:04 2022 +0100
WHATS_NEW: update
---
WHATS_NEW | 4 ++++
1 file changed, 4 insertions(+)
diff --git a/WHATS_NEW b/WHATS_NEW
index 613acfa86..bfa33aa7a 100644
--- a/WHATS_NEW
+++ b/WHATS_NEW
@@ -1,5 +1,9 @@
Version 2.03.18 -
====================================
+ Fix issues reported by coverity scan.
+ Fix warning for thin pool overprovisioning on lvextend (2.03.17).
+ Add support for writecache metadata_only and pause_writeback settings.
+ Fix missing error messages in lvmdbusd.
Version 2.03.17 - 10th November 2022
====================================
1 year, 2 months
main - pvscan: free unused device_id
by Zdenek Kabelac
Gitweb: https://sourceware.org/git/?p=lvm2.git;a=commitdiff;h=edd6d84159f4d540c82...
Commit: edd6d84159f4d540c8283771da6702971518ccd7
Parent: 8f091d379860cf71577629cc1f56191b5f418310
Author: Zdenek Kabelac <zkabelac(a)redhat.com>
AuthorDate: Tue Dec 20 14:17:34 2022 +0100
Committer: Zdenek Kabelac <zkabelac(a)redhat.com>
CommitterDate: Tue Dec 20 15:04:36 2022 +0100
pvscan: free unused device_id
Fix memleak in function.
---
tools/pvscan.c | 2 ++
1 file changed, 2 insertions(+)
diff --git a/tools/pvscan.c b/tools/pvscan.c
index 96935a43b..773862227 100644
--- a/tools/pvscan.c
+++ b/tools/pvscan.c
@@ -1441,6 +1441,8 @@ static void _warn_excluded_root(struct cmd_context *cmd, struct device *dev)
log_warn("WARNING: no autoactivation for %s: system.devices %s current %s.",
dev_name(dev), du->idname, cur_idname ?: "missing device id");
+
+ free((void*) cur_idname);
}
static int _pvscan_cache_args(struct cmd_context *cmd, int argc, char **argv,
1 year, 2 months
main - cov: use long type for time_t calcs
by Zdenek Kabelac
Gitweb: https://sourceware.org/git/?p=lvm2.git;a=commitdiff;h=8f091d379860cf71577...
Commit: 8f091d379860cf71577629cc1f56191b5f418310
Parent: f443d16fd7409b46b77be2aa74090ab558c51425
Author: Zdenek Kabelac <zkabelac(a)redhat.com>
AuthorDate: Tue Dec 20 14:11:57 2022 +0100
Committer: Zdenek Kabelac <zkabelac(a)redhat.com>
CommitterDate: Tue Dec 20 15:04:36 2022 +0100
cov: use long type for time_t calcs
Some for y38k - calculations can handle 64b time_t.
---
daemons/dmeventd/libdevmapper-event.c | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/daemons/dmeventd/libdevmapper-event.c b/daemons/dmeventd/libdevmapper-event.c
index 30df1da21..c6532b9a5 100644
--- a/daemons/dmeventd/libdevmapper-event.c
+++ b/daemons/dmeventd/libdevmapper-event.c
@@ -928,8 +928,8 @@ void dm_event_log(const char *subsys, int level, const char *file,
start = now;
now -= start;
if (_debug_level)
- fprintf(stream, "[%2d:%02d] %8x:%-6s%s",
- (int)now / 60, (int)now % 60,
+ fprintf(stream, "[%2ld:%02ld] %8x:%-6s%s",
+ (long)now / 60, (long)now % 60,
// TODO: Maybe use shorter ID
// ((int)(pthread_self()) >> 6) & 0xffff,
(int)pthread_self(), subsys,
1 year, 2 months
main - cov: fix buffer size usage
by Zdenek Kabelac
Gitweb: https://sourceware.org/git/?p=lvm2.git;a=commitdiff;h=f443d16fd7409b46b77...
Commit: f443d16fd7409b46b77be2aa74090ab558c51425
Parent: 44a2f2df9281ac0f5aef67d5f3c32fc2ee6ad0e9
Author: Zdenek Kabelac <zkabelac(a)redhat.com>
AuthorDate: Tue Dec 20 13:58:31 2022 +0100
Committer: Zdenek Kabelac <zkabelac(a)redhat.com>
CommitterDate: Tue Dec 20 15:04:36 2022 +0100
cov: fix buffer size usage
Count with extra 1 byte for buffer end '\0'.
---
libdm/dm-tools/dmfilemapd.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/libdm/dm-tools/dmfilemapd.c b/libdm/dm-tools/dmfilemapd.c
index d547e59d5..f6c04e03e 100644
--- a/libdm/dm-tools/dmfilemapd.c
+++ b/libdm/dm-tools/dmfilemapd.c
@@ -172,7 +172,7 @@ static int _is_open_in_pid(pid_t pid, const char *path)
if (pid_dp->d_name[0] == '.')
continue;
if ((len = readlinkat(dirfd(pid_d), pid_dp->d_name, link_buf,
- sizeof(link_buf))) < 0) {
+ (sizeof(link_buf) - 1))) < 0) {
log_error("readlink failed for " DEFAULT_PROC_DIR
"/%d/fd/.", pid);
goto bad;
1 year, 2 months
main - cov: remove unused header files
by Zdenek Kabelac
Gitweb: https://sourceware.org/git/?p=lvm2.git;a=commitdiff;h=44a2f2df9281ac0f5ae...
Commit: 44a2f2df9281ac0f5aef67d5f3c32fc2ee6ad0e9
Parent: b6b1c19365d20d926d8aa39bf591731a7f9bb75a
Author: Zdenek Kabelac <zkabelac(a)redhat.com>
AuthorDate: Tue Dec 20 13:54:59 2022 +0100
Committer: Zdenek Kabelac <zkabelac(a)redhat.com>
CommitterDate: Tue Dec 20 15:04:36 2022 +0100
cov: remove unused header files
---
lib/device/filesystem.c | 1 -
lib/device/online.c | 1 -
lib/device/parse_vpd.c | 1 -
3 files changed, 3 deletions(-)
diff --git a/lib/device/filesystem.c b/lib/device/filesystem.c
index bdc230175..61e4d805e 100644
--- a/lib/device/filesystem.c
+++ b/lib/device/filesystem.c
@@ -22,7 +22,6 @@
#include <dirent.h>
#include <mntent.h>
-#include <sys/ioctl.h>
static const char *_lvresize_fs_helper_path;
diff --git a/lib/device/online.c b/lib/device/online.c
index 7ffe14b18..b97b71d92 100644
--- a/lib/device/online.c
+++ b/lib/device/online.c
@@ -17,7 +17,6 @@
#include "lib/commands/toolcontext.h"
#include "lib/device/device.h"
#include "lib/device/online.h"
-#include "lib/metadata/metadata.h"
#include <dirent.h>
diff --git a/lib/device/parse_vpd.c b/lib/device/parse_vpd.c
index 23b0c6efa..bea8834d4 100644
--- a/lib/device/parse_vpd.c
+++ b/lib/device/parse_vpd.c
@@ -26,7 +26,6 @@
#include <string.h>
#include <inttypes.h>
#include <sys/types.h>
-#include <sys/ioctl.h>
#include <sys/stat.h>
#include <fcntl.h>
#include <ctype.h>
1 year, 2 months
main - vdo: fix reader error path
by Zdenek Kabelac
Gitweb: https://sourceware.org/git/?p=lvm2.git;a=commitdiff;h=b6b1c19365d20d926d8...
Commit: b6b1c19365d20d926d8aa39bf591731a7f9bb75a
Parent: 4baef0f93f608403b6f2db445e7bf1e80f8f3ee6
Author: Zdenek Kabelac <zkabelac(a)redhat.com>
AuthorDate: Tue Dec 20 13:52:31 2022 +0100
Committer: Zdenek Kabelac <zkabelac(a)redhat.com>
CommitterDate: Tue Dec 20 15:04:36 2022 +0100
vdo: fix reader error path
Nothing to be closed on this error path.
---
device_mapper/vdo/vdo_reader.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/device_mapper/vdo/vdo_reader.c b/device_mapper/vdo/vdo_reader.c
index 4f91f8011..3596afbd3 100644
--- a/device_mapper/vdo/vdo_reader.c
+++ b/device_mapper/vdo/vdo_reader.c
@@ -189,7 +189,7 @@ bool dm_vdo_parse_logical_size(const char *vdo_path, uint64_t *logical_blocks)
*logical_blocks = 0;
if ((fh = open(vdo_path, O_RDONLY)) == -1) {
log_sys_debug("Failed to open VDO backend %s.", vdo_path);
- goto err;
+ return false;
}
if (ioctl(fh, BLKGETSIZE64, &size) == -1) {
1 year, 2 months
main - lvextend: fix overprovisioning check for thin lvs
by David Teigland
Gitweb: https://sourceware.org/git/?p=lvm2.git;a=commitdiff;h=4baef0f93f608403b6f...
Commit: 4baef0f93f608403b6f2db445e7bf1e80f8f3ee6
Parent: fa7fe5cbbe927d13a8b93aba24640ce5d8c11896
Author: David Teigland <teigland(a)redhat.com>
AuthorDate: Thu Dec 15 09:57:04 2022 -0600
Committer: David Teigland <teigland(a)redhat.com>
CommitterDate: Thu Dec 15 10:00:17 2022 -0600
lvextend: fix overprovisioning check for thin lvs
18722dfdf4d3 lvresize: restructure code
mistakenly changed the overprovisioning check from applying
to all lv_is_thin_type lvs to only lv_is_thin_pool lvs, so
it no longer applied when extending thin lvs. The result
was missing warning messages when extending thin lvs.
---
lib/metadata/lv_manip.c | 5 +++--
1 file changed, 3 insertions(+), 2 deletions(-)
diff --git a/lib/metadata/lv_manip.c b/lib/metadata/lv_manip.c
index 4cdbc19a0..f8eae0447 100644
--- a/lib/metadata/lv_manip.c
+++ b/lib/metadata/lv_manip.c
@@ -7007,9 +7007,10 @@ int lv_resize(struct cmd_context *cmd, struct logical_volume *lv,
if (lv_is_thin_pool(lv_top)) {
if (!update_thin_pool_lv(lv_top, 1))
goto_out;
- if (is_extend)
- thin_pool_check_overprovisioning(lv_top);
}
+ if (lv_is_thin_type(lv_top) && is_extend)
+ thin_pool_check_overprovisioning(lv_top);
+
if (lv_main && lv_is_cow_covering_origin(lv_main)) {
if (!monitor_dev_for_events(cmd, lv_main, 0, 0))
stack;
1 year, 3 months
main - writecache: support settings metadata_only and pause_writeback
by David Teigland
Gitweb: https://sourceware.org/git/?p=lvm2.git;a=commitdiff;h=fa7fe5cbbe927d13a8b...
Commit: fa7fe5cbbe927d13a8b93aba24640ce5d8c11896
Parent: 9ce55a43d0165da9827e7b8e75bf25583a571e89
Author: David Teigland <teigland(a)redhat.com>
AuthorDate: Thu Dec 8 16:42:04 2022 -0600
Committer: David Teigland <teigland(a)redhat.com>
CommitterDate: Thu Dec 8 16:53:36 2022 -0600
writecache: support settings metadata_only and pause_writeback
Two new settings for tuning dm-writecache.
---
device_mapper/all.h | 6 +++++-
device_mapper/libdm-deptree.c | 12 ++++++++++++
lib/metadata/writecache_manip.c | 8 ++++++++
lib/writecache/writecache.c | 20 ++++++++++++++++++++
man/lvmcache.7_main | 15 +++++++++++++++
tools/lvchange.c | 10 ++++++++++
tools/toollib.c | 14 ++++++++++++++
7 files changed, 84 insertions(+), 1 deletion(-)
diff --git a/device_mapper/all.h b/device_mapper/all.h
index b70a8f29c..1e19add68 100644
--- a/device_mapper/all.h
+++ b/device_mapper/all.h
@@ -982,7 +982,9 @@ struct writecache_settings {
uint32_t fua;
uint32_t nofua;
uint32_t cleaner;
- uint32_t max_age;
+ uint32_t max_age; /* in milliseconds */
+ uint32_t metadata_only;
+ uint32_t pause_writeback; /* in milliseconds */
/*
* Allow an unrecognized key and its val to be passed to the kernel for
@@ -1004,6 +1006,8 @@ struct writecache_settings {
unsigned nofua_set:1;
unsigned cleaner_set:1;
unsigned max_age_set:1;
+ unsigned metadata_only_set:1;
+ unsigned pause_writeback_set:1;
};
int dm_tree_node_add_writecache_target(struct dm_tree_node *node,
diff --git a/device_mapper/libdm-deptree.c b/device_mapper/libdm-deptree.c
index 39af7b1d4..c6cc8de56 100644
--- a/device_mapper/libdm-deptree.c
+++ b/device_mapper/libdm-deptree.c
@@ -2679,6 +2679,10 @@ static int _writecache_emit_segment_line(struct dm_task *dmt,
count += 1;
if (seg->writecache_settings.max_age_set)
count += 2;
+ if (seg->writecache_settings.metadata_only_set)
+ count += 1;
+ if (seg->writecache_settings.pause_writeback_set)
+ count += 2;
if (seg->writecache_settings.new_key)
count += 2;
@@ -2730,6 +2734,14 @@ static int _writecache_emit_segment_line(struct dm_task *dmt,
EMIT_PARAMS(pos, " max_age %u", seg->writecache_settings.max_age);
}
+ if (seg->writecache_settings.metadata_only_set) {
+ EMIT_PARAMS(pos, " metadata_only");
+ }
+
+ if (seg->writecache_settings.pause_writeback_set) {
+ EMIT_PARAMS(pos, " pause_writeback %u", seg->writecache_settings.pause_writeback);
+ }
+
if (seg->writecache_settings.new_key) {
EMIT_PARAMS(pos, " %s %s",
seg->writecache_settings.new_key,
diff --git a/lib/metadata/writecache_manip.c b/lib/metadata/writecache_manip.c
index 8150d0781..21b7940fb 100644
--- a/lib/metadata/writecache_manip.c
+++ b/lib/metadata/writecache_manip.c
@@ -518,6 +518,14 @@ int writecache_settings_to_str_list(struct writecache_settings *settings, struct
if (!_writecache_setting_str_list_add("max_age", (uint64_t)settings->max_age, NULL, result, mem))
errors++;
+ if (settings->metadata_only_set)
+ if (!_writecache_setting_str_list_add("metadata_only", (uint64_t)settings->metadata_only, NULL, result, mem))
+ errors++;
+
+ if (settings->pause_writeback_set)
+ if (!_writecache_setting_str_list_add("pause_writeback", (uint64_t)settings->pause_writeback, NULL, result, mem))
+ errors++;
+
if (settings->new_key && settings->new_val)
if (!_writecache_setting_str_list_add(settings->new_key, 0, settings->new_val, result, mem))
errors++;
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);
diff --git a/man/lvmcache.7_main b/man/lvmcache.7_main
index d46c50d04..fdb375083 100644
--- a/man/lvmcache.7_main
+++ b/man/lvmcache.7_main
@@ -340,6 +340,21 @@ perform. If not done beforehand, the splitcache command enables the
cleaner mode and waits for flushing to complete before detaching the
writecache. Adding cleaner=0 to the splitcache command will skip the
cleaner mode, and any required flushing is performed in device suspend.
+.
+.TP
+max_age = <milliseconds>
+Specifies the maximum age of a block in milliseconds. If a block is stored in
+the cache for too long, it will be written to the underlying device and cleaned up.
+.
+.TP
+metadata_only = 0|1
+Only metadata is promoted to the cache. This option improves performance for
+heavier REQ_META workloads.
+.
+.TP
+pause_writeback = <milliseconds>
+Pause writeback if there was some write I/O redirected to the origin volume in
+the last number of milliseconds.
.SS dm-writecache using metadata profiles
.
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;
1 year, 3 months