Sign In
Sign Up
Sign In
Sign Up
Manage this list
×
Keyboard Shortcuts
Thread View
j
: Next unread message
k
: Previous unread message
j a
: Jump to all threads
j l
: Jump to MailingList overview
2025
May
April
March
February
January
2024
December
November
October
September
August
July
June
May
April
March
February
January
2023
December
November
October
September
August
July
June
May
April
March
February
January
2022
December
November
October
September
August
July
June
May
April
March
February
January
2021
December
November
October
September
August
July
June
May
April
March
February
January
2020
December
November
October
September
August
July
June
May
April
March
February
January
2019
December
November
October
September
August
July
June
May
April
March
February
January
2018
December
November
October
September
August
July
June
May
April
March
February
January
2017
December
November
October
September
August
July
June
May
April
March
February
January
2016
December
November
October
September
August
July
June
May
April
March
February
January
2015
December
November
October
September
August
July
June
May
April
March
February
January
2014
December
November
October
September
August
July
June
May
April
March
February
January
2013
December
November
October
September
August
July
June
May
April
March
February
January
2012
December
November
October
September
August
July
June
List overview
Download
lvm2-commits
December 2022
----- 2025 -----
May 2025
April 2025
March 2025
February 2025
January 2025
----- 2024 -----
December 2024
November 2024
October 2024
September 2024
August 2024
July 2024
June 2024
May 2024
April 2024
March 2024
February 2024
January 2024
----- 2023 -----
December 2023
November 2023
October 2023
September 2023
August 2023
July 2023
June 2023
May 2023
April 2023
March 2023
February 2023
January 2023
----- 2022 -----
December 2022
November 2022
October 2022
September 2022
August 2022
July 2022
June 2022
May 2022
April 2022
March 2022
February 2022
January 2022
----- 2021 -----
December 2021
November 2021
October 2021
September 2021
August 2021
July 2021
June 2021
May 2021
April 2021
March 2021
February 2021
January 2021
----- 2020 -----
December 2020
November 2020
October 2020
September 2020
August 2020
July 2020
June 2020
May 2020
April 2020
March 2020
February 2020
January 2020
----- 2019 -----
December 2019
November 2019
October 2019
September 2019
August 2019
July 2019
June 2019
May 2019
April 2019
March 2019
February 2019
January 2019
----- 2018 -----
December 2018
November 2018
October 2018
September 2018
August 2018
July 2018
June 2018
May 2018
April 2018
March 2018
February 2018
January 2018
----- 2017 -----
December 2017
November 2017
October 2017
September 2017
August 2017
July 2017
June 2017
May 2017
April 2017
March 2017
February 2017
January 2017
----- 2016 -----
December 2016
November 2016
October 2016
September 2016
August 2016
July 2016
June 2016
May 2016
April 2016
March 2016
February 2016
January 2016
----- 2015 -----
December 2015
November 2015
October 2015
September 2015
August 2015
July 2015
June 2015
May 2015
April 2015
March 2015
February 2015
January 2015
----- 2014 -----
December 2014
November 2014
October 2014
September 2014
August 2014
July 2014
June 2014
May 2014
April 2014
March 2014
February 2014
January 2014
----- 2013 -----
December 2013
November 2013
October 2013
September 2013
August 2013
July 2013
June 2013
May 2013
April 2013
March 2013
February 2013
January 2013
----- 2012 -----
December 2012
November 2012
October 2012
September 2012
August 2012
July 2012
June 2012
lvm2-commits@lists.fedorahosted.org
3 participants
29 discussions
Start a n
N
ew thread
v2_03_18 annotated tag has been created
by Marian Csontos
22 Dec '22
22 Dec '22
Gitweb:
https://sourceware.org/git/?p=lvm2.git;a=commitdiff;h=fba794b52541452da9131…
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
0
0
0
main - pre-release
by Marian Csontos
22 Dec '22
22 Dec '22
Gitweb:
https://sourceware.org/git/?p=lvm2.git;a=commitdiff;h=2abb029f2a9f056a6061d…
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
0
0
0
main - WHATS_NEW: update
by Marian Csontos
22 Dec '22
22 Dec '22
Gitweb:
https://sourceware.org/git/?p=lvm2.git;a=commitdiff;h=2772d299174c25f054b4e…
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
0
0
0
main - pvscan: free unused device_id
by Zdenek Kabelac
20 Dec '22
20 Dec '22
Gitweb:
https://sourceware.org/git/?p=lvm2.git;a=commitdiff;h=edd6d84159f4d540c8283…
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
0
0
0
main - cov: use long type for time_t calcs
by Zdenek Kabelac
20 Dec '22
20 Dec '22
Gitweb:
https://sourceware.org/git/?p=lvm2.git;a=commitdiff;h=8f091d379860cf7157762…
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
0
0
0
main - cov: fix buffer size usage
by Zdenek Kabelac
20 Dec '22
20 Dec '22
Gitweb:
https://sourceware.org/git/?p=lvm2.git;a=commitdiff;h=f443d16fd7409b46b77be…
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
0
0
0
main - cov: remove unused header files
by Zdenek Kabelac
20 Dec '22
20 Dec '22
Gitweb:
https://sourceware.org/git/?p=lvm2.git;a=commitdiff;h=44a2f2df9281ac0f5aef6…
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
0
0
0
main - vdo: fix reader error path
by Zdenek Kabelac
20 Dec '22
20 Dec '22
Gitweb:
https://sourceware.org/git/?p=lvm2.git;a=commitdiff;h=b6b1c19365d20d926d8aa…
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
0
0
0
main - lvextend: fix overprovisioning check for thin lvs
by David Teigland
15 Dec '22
15 Dec '22
Gitweb:
https://sourceware.org/git/?p=lvm2.git;a=commitdiff;h=4baef0f93f608403b6f2d…
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
0
0
0
main - writecache: support settings metadata_only and pause_writeback
by David Teigland
09 Dec '22
09 Dec '22
Gitweb:
https://sourceware.org/git/?p=lvm2.git;a=commitdiff;h=fa7fe5cbbe927d13a8b93…
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
0
0
0
← Newer
1
2
3
Older →
Jump to page:
1
2
3
Results per page:
10
25
50
100
200