main - alloc: enhance estimation of sufficient_pes_free
by Zdenek Kabelac
Gitweb: https://sourceware.org/git/?p=lvm2.git;a=commitdiff;h=0b6ee6a9121c688af49...
Commit: 0b6ee6a9121c688af491692cab65bd6f17cf49d0
Parent: a4c56a3bc342ab42fdfc9c9538b3fa7feba49412
Author: Zdenek Kabelac <zkabelac(a)redhat.com>
AuthorDate: Tue Jan 12 15:58:07 2021 +0100
Committer: Zdenek Kabelac <zkabelac(a)redhat.com>
CommitterDate: Wed Jan 13 12:54:45 2021 +0100
alloc: enhance estimation of sufficient_pes_free
Since commit 77fdc17d70e62cab75efaaf0dad02493b948610d always include
log_len size into needed extents - however now we may need sometimes
more extents then necessary - mainly when multiple PVs are involved
into allocation.
Add logs_still_needed into calculation of sufficient_pes_free()
---
WHATS_NEW | 1 +
lib/metadata/lv_manip.c | 10 +++++++---
2 files changed, 8 insertions(+), 3 deletions(-)
diff --git a/WHATS_NEW b/WHATS_NEW
index 06ef5a4dc..ffefc9d2d 100644
--- a/WHATS_NEW
+++ b/WHATS_NEW
@@ -1,5 +1,6 @@
Version 2.03.12 -
===================================
+ Fix corner case allocation for thin-pools.
Version 2.03.11 - 08th January 2021
===================================
diff --git a/lib/metadata/lv_manip.c b/lib/metadata/lv_manip.c
index 70464362e..443d32c57 100644
--- a/lib/metadata/lv_manip.c
+++ b/lib/metadata/lv_manip.c
@@ -1850,11 +1850,13 @@ static uint32_t _mirror_log_extents(uint32_t region_size, uint32_t pe_size, uint
/* Is there enough total space or should we give up immediately? */
static int _sufficient_pes_free(struct alloc_handle *ah, struct dm_list *pvms,
- uint32_t allocated, uint32_t extents_still_needed)
+ uint32_t allocated, uint32_t log_still_needed,
+ uint32_t extents_still_needed)
{
uint32_t area_extents_needed = (extents_still_needed - allocated) * ah->area_count / ah->area_multiple;
uint32_t parity_extents_needed = (extents_still_needed - allocated) * ah->parity_count / ah->area_multiple;
- uint32_t metadata_extents_needed = ah->alloc_and_split_meta ? 0 : ah->metadata_area_count * RAID_METADATA_AREA_LEN + ah->log_len; /* One each */
+ uint32_t metadata_extents_needed = (ah->alloc_and_split_meta ? 0 : ah->metadata_area_count * RAID_METADATA_AREA_LEN) +
+ (log_still_needed ? ah->log_len : 0); /* One each */
uint64_t total_extents_needed = (uint64_t)area_extents_needed + parity_extents_needed + metadata_extents_needed;
uint32_t free_pes = pv_maps_size(pvms);
@@ -3359,7 +3361,9 @@ static int _allocate(struct alloc_handle *ah,
old_allocated = alloc_state.allocated;
log_debug_alloc("Trying allocation using %s policy.", get_alloc_string(alloc));
- if (!ah->approx_alloc && !_sufficient_pes_free(ah, pvms, alloc_state.allocated, ah->new_extents))
+ if (!ah->approx_alloc && !_sufficient_pes_free(ah, pvms, alloc_state.allocated,
+ alloc_state.log_area_count_still_needed,
+ ah->new_extents))
goto_out;
_init_alloc_parms(ah, &alloc_parms, alloc, prev_lvseg,
3 years, 2 months
stable-2.02 - tests: check full zeroing of thin-pool metadata
by Zdenek Kabelac
Gitweb: https://sourceware.org/git/?p=lvm2.git;a=commitdiff;h=1d94748601056442b16...
Commit: 1d94748601056442b160df8802817404e0a5c7c4
Parent: b9d31664dc8272e58c4233d34dcde8ce1447314f
Author: Zdenek Kabelac <zkabelac(a)redhat.com>
AuthorDate: Wed Jan 13 00:19:38 2021 +0100
Committer: Zdenek Kabelac <zkabelac(a)redhat.com>
CommitterDate: Wed Jan 13 10:41:26 2021 +0100
tests: check full zeroing of thin-pool metadata
Check zeroing works on whole thin-pool metadata device.
---
test/shell/thin-zero-meta.sh | 68 ++++++++++++++++++++++++++++++++++++++++++++
1 file changed, 68 insertions(+)
diff --git a/test/shell/thin-zero-meta.sh b/test/shell/thin-zero-meta.sh
new file mode 100644
index 000000000..6a15a7388
--- /dev/null
+++ b/test/shell/thin-zero-meta.sh
@@ -0,0 +1,68 @@
+#!/usr/bin/env bash
+
+# Copyright (C) 2021 Red Hat, Inc. All rights reserved.
+#
+# This copyrighted material is made available to anyone wishing to use,
+# modify, copy, or redistribute it subject to the terms and conditions
+# of the GNU General Public License v.2.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software Foundation,
+# Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
+
+# Test how zeroing of thin-pool metadata works
+
+SKIP_WITH_LVMLOCKD=1
+SKIP_WITH_LVMPOLLD=1
+
+export LVM_TEST_THIN_REPAIR_CMD=${LVM_TEST_THIN_REPAIR_CMD-/bin/false}
+
+. lib/inittest
+
+#
+# Main
+#
+aux have_thin 1 3 0 || skip
+aux have_cache 1 3 0 || skip
+
+aux prepare_vg 3 40000
+
+# Create mostly-zero devs only front of it has some 'real' back-end
+aux zero_dev "$dev1" "$(( $(get first_extent_sector "$dev1") + 8192 )):"
+aux zero_dev "$dev2" "$(( $(get first_extent_sector "$dev2") + 8192 )):"
+aux zero_dev "$dev3" "$(( $(get first_extent_sector "$dev3") + 8192 )):"
+
+# Prepare randomly filled 4M LV on dev2
+lvcreate -L16G -n $lv1 $vg "$dev2"
+dd if=/dev/urandom of="$DM_DEV_DIR/$vg/$lv1" bs=1M count=4 oflag=direct || true
+lvremove -f $vg
+
+for i in 0 1
+do
+ aux lvmconf "allocation/zero_metadata = $i"
+
+ # Lvm2 should allocate metadata on dev2
+ lvcreate -T -L10G --poolmetadatasize 16G $vg/pool "$dev1" "$dev2"
+ lvchange -an $vg
+
+ lvs -ao+seg_pe_ranges $vg
+ lvchange -ay $vg/pool_tmeta --yes
+
+ # Skip past 1.2M which is 'created' by thin-pool initialization
+ hexdump -C -n 200 -s 2000000 "$DM_DEV_DIR/$vg/pool_tmeta" | tee out
+
+ # When fully zeroed, it should be zero - so almost no output from hexdump
+ case "$i" in
+ 0) test $(wc -l < out) -ge 10 ;; # should not be zeroed
+ 1) test $(wc -l < out) -le 10 ;; # should be zeroed
+ esac
+
+ lvremove -f $vg/pool
+done
+
+# Check lvm2 spots error during full zeroing of metadata device
+aux error_dev "$dev2" "$(( $(get first_extent_sector "$dev2") + 32 )):"
+not lvcreate -T -L10G --poolmetadatasize 16G $vg/pool "$dev1" "$dev2" |& tee err
+grep "Failed to initialize logical volume" err
+
+vgremove -ff $vg
3 years, 2 months
stable-2.02 - alloc: enhance estimation of sufficient_pes_free
by Zdenek Kabelac
Gitweb: https://sourceware.org/git/?p=lvm2.git;a=commitdiff;h=194630be52b6459b331...
Commit: 194630be52b6459b331fcf338539c82263125162
Parent: b98c3346350b7c270140c1f21fda0436876e16e8
Author: Zdenek Kabelac <zkabelac(a)redhat.com>
AuthorDate: Tue Jan 12 15:58:07 2021 +0100
Committer: Zdenek Kabelac <zkabelac(a)redhat.com>
CommitterDate: Wed Jan 13 10:40:46 2021 +0100
alloc: enhance estimation of sufficient_pes_free
Since commit 77fdc17d70e62cab75efaaf0dad02493b948610d always include
log_len size into needed extents - however now we may need sometimes
more extents then necessary - mainly when multiple PVs are involved
into allocation.
Add logs_still_needed into calculation of sufficient_pes_free()
---
lib/metadata/lv_manip.c | 10 +++++++---
1 file changed, 7 insertions(+), 3 deletions(-)
diff --git a/lib/metadata/lv_manip.c b/lib/metadata/lv_manip.c
index e96a04a69..346ec9f77 100644
--- a/lib/metadata/lv_manip.c
+++ b/lib/metadata/lv_manip.c
@@ -1700,11 +1700,13 @@ static uint32_t _mirror_log_extents(uint32_t region_size, uint32_t pe_size, uint
/* Is there enough total space or should we give up immediately? */
static int _sufficient_pes_free(struct alloc_handle *ah, struct dm_list *pvms,
- uint32_t allocated, uint32_t extents_still_needed)
+ uint32_t allocated, uint32_t log_still_needed,
+ uint32_t extents_still_needed)
{
uint32_t area_extents_needed = (extents_still_needed - allocated) * ah->area_count / ah->area_multiple;
uint32_t parity_extents_needed = (extents_still_needed - allocated) * ah->parity_count / ah->area_multiple;
- uint32_t metadata_extents_needed = ah->alloc_and_split_meta ? 0 : ah->metadata_area_count * RAID_METADATA_AREA_LEN + ah->log_len; /* One each */
+ uint32_t metadata_extents_needed = (ah->alloc_and_split_meta ? 0 : ah->metadata_area_count * RAID_METADATA_AREA_LEN) +
+ (log_still_needed ? ah->log_len : 0); /* One each */
uint64_t total_extents_needed = (uint64_t)area_extents_needed + parity_extents_needed + metadata_extents_needed;
uint32_t free_pes = pv_maps_size(pvms);
@@ -3200,7 +3202,9 @@ static int _allocate(struct alloc_handle *ah,
old_allocated = alloc_state.allocated;
log_debug_alloc("Trying allocation using %s policy.", get_alloc_string(alloc));
- if (!ah->approx_alloc && !_sufficient_pes_free(ah, pvms, alloc_state.allocated, ah->new_extents))
+ if (!ah->approx_alloc && !_sufficient_pes_free(ah, pvms, alloc_state.allocated,
+ alloc_state.log_area_count_still_needed,
+ ah->new_extents))
goto_out;
_init_alloc_parms(ah, &alloc_parms, alloc, prev_lvseg,
3 years, 2 months
stable-2.02 - tests: check thin-pool corner case allocs
by Zdenek Kabelac
Gitweb: https://sourceware.org/git/?p=lvm2.git;a=commitdiff;h=b9d31664dc8272e58c4...
Commit: b9d31664dc8272e58c4233d34dcde8ce1447314f
Parent: 194630be52b6459b331fcf338539c82263125162
Author: Zdenek Kabelac <zkabelac(a)redhat.com>
AuthorDate: Tue Jan 12 23:26:16 2021 +0100
Committer: Zdenek Kabelac <zkabelac(a)redhat.com>
CommitterDate: Wed Jan 13 10:41:17 2021 +0100
tests: check thin-pool corner case allocs
---
test/shell/lvcreate-thin-limits.sh | 30 ++++++++++++++++++++++++++----
1 file changed, 26 insertions(+), 4 deletions(-)
diff --git a/test/shell/lvcreate-thin-limits.sh b/test/shell/lvcreate-thin-limits.sh
index 6a9c33d82..5dcc160dc 100644
--- a/test/shell/lvcreate-thin-limits.sh
+++ b/test/shell/lvcreate-thin-limits.sh
@@ -27,13 +27,35 @@ aux can_use_16T || skip
aux have_thin 1 0 0 || skip
which mkfs.ext4 || skip
-aux prepare_pvs 1 16777216
+# 16T device
+aux prepare_pvs 2 8388608
get_devs
-vgcreate $SHARED -s 4K "$vg" "${DEVICES[@]}"
+# gives 16777215M device
+vgcreate $SHARED -s 4M "$vg" "${DEVICES[@]}"
-not lvcreate -T -L15.995T --poolmetadatasize 5G $vg/pool
+# For 1st. pass only single PV
+lvcreate -l100%PV --name $lv1 $vg "$dev2"
-lvs -ao+seg_pe_ranges $vg
+for i in 1 0
+do
+ SIZE=$(get vg_field "$vg" vg_free --units m)
+ SIZE=${SIZE%%\.*}
+
+ # ~16T - 2 * 5G + something -> should not fit
+ not lvcreate -Zn -T -L$(( SIZE - 2 * 5 * 1024 + 1 )) --poolmetadatasize 5G $vg/pool
+
+ check vg_field "$vg" lv_count "$i"
+
+ # Should fit data + metadata + pmspare
+ lvcreate -Zn -T -L$(( SIZE - 2 * 5 * 1024 )) --poolmetadatasize 5G $vg/pool
+
+ check vg_field "$vg" vg_free "0"
+
+ lvs -ao+seg_pe_ranges $vg
+
+ # Remove everything for 2nd. pass
+ lvremove -ff $vg
+done
vgremove -ff $vg
3 years, 2 months
main - lvmlockd: sscanf buffer size warnings
by David Teigland
Gitweb: https://sourceware.org/git/?p=lvm2.git;a=commitdiff;h=a4c56a3bc342ab42fdf...
Commit: a4c56a3bc342ab42fdfc9c9538b3fa7feba49412
Parent: 6308365d485a741d36c98060a00e95892fc3d21f
Author: David Teigland <teigland(a)redhat.com>
AuthorDate: Fri Jan 8 11:59:28 2021 -0600
Committer: David Teigland <teigland(a)redhat.com>
CommitterDate: Fri Jan 8 12:13:05 2021 -0600
lvmlockd: sscanf buffer size warnings
---
daemons/lvmlockd/lvmlockd-core.c | 6 ++++--
1 file changed, 4 insertions(+), 2 deletions(-)
diff --git a/daemons/lvmlockd/lvmlockd-core.c b/daemons/lvmlockd/lvmlockd-core.c
index fea8ee6cf..c4abf66be 100644
--- a/daemons/lvmlockd/lvmlockd-core.c
+++ b/daemons/lvmlockd/lvmlockd-core.c
@@ -896,8 +896,9 @@ static int read_adopt_file(struct list_head *vg_lockd)
goto fail;
memset(vg_uuid, 0, sizeof(vg_uuid));
+ memset(lm_type_str, 0, sizeof(lm_type_str));
- if (sscanf(adopt_line, "VG: %63s %64s %16s %64s",
+ if (sscanf(adopt_line, "VG: %63s %64s %15s %64s",
vg_uuid, ls->vg_name, lm_type_str, ls->vg_args) != 4) {
goto fail;
}
@@ -916,8 +917,9 @@ static int read_adopt_file(struct list_head *vg_lockd)
r->type = LD_RT_LV;
memset(vg_uuid, 0, sizeof(vg_uuid));
+ memset(mode, 0, sizeof(mode));
- if (sscanf(adopt_line, "LV: %64s %64s %s %8s %u",
+ if (sscanf(adopt_line, "LV: %64s %64s %s %7s %u",
vg_uuid, r->name, r->lv_args, mode, &r->version) != 5) {
goto fail;
}
3 years, 2 months
v2_03_11 annotated tag has been created
by Marian Csontos
Gitweb: https://sourceware.org/git/?p=lvm2.git;a=commitdiff;h=1e3f426680503e21cdb...
Commit: 1e3f426680503e21cdb3d565c4788aead662de48
Parent: 0000000000000000000000000000000000000000
Author: Marian Csontos <mcsontos(a)redhat.com>
AuthorDate: 2021-01-08 09:09 +0000
Committer: Marian Csontos <mcsontos(a)redhat.com>
CommitterDate: 2021-01-08 09:09 +0000
annotated tag: v2_03_11 has been created
at 1e3f426680503e21cdb3d565c4788aead662de48 (tag)
tagging 3e8bd8d1bd70691f09a170785836aeb4f83154e6 (commit)
replaces v2_03_10
Release 2.03.11
- Improvements to VDO, writecache and integrity volumes.
- And lot of bugfixes.
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v2.0.22 (GNU/Linux)
iQIcBAABAgAGBQJf+CE6AAoJELkRJDHlCQOf4w8QALmaertFEgsz6F3YopsVX9s7
O1QlYyrLAdGOwHLUnfPhXGcdZbVAujDo25bMDxnocPvb4pfW+qttM2DfLzQ52ppR
JoC2IvF1M1kfxszSn5OIL+2jOjTLigfr7G/1ytmk8+LUT/cPEdv8azI9RfFRG99D
oOZ5zzJpZhToxm8h4eMp7bVg3C6WCj9YfUXcfDUG0yKJPKFZUqPN3iQWfuWiUHQr
mZf6YDSMlwGFCKMbHDFVw8HXke0Weqb4xZlPjbrcAvi9MizdbH+V6RtBrOmmtvfm
yJoKkL9ig3av1BxfjJc4Iu9q23vt1oHbtRG8p/qL6zBl3oYvYDltT6zU2ILjNpz8
B6wOBYPgETRgZQW8+4BvbQt0OKZ3Mioz0idt3uuqRQNO6kIQfPctdjKUTliEKEN/
1/urausVX+l3ov02q9AaREYAUg+iEfLeDQca2srbP0sdga/ZW/Qrs9a6Km134ERj
xylUtlxDYo0nfAGYsm6M7v9D5RiTnvAvPndGGLRNqHtL8hMY4+eE1VTov+4Iblyf
s0Ku2+oywsjZE5h0T3k9wdfQBija7vGvhqSDGul1DG1cZH9ukE881bgIcxebvgi+
SIhRolQBbytocfWUjfoxhGPO5qexnHsqpxxAeR4TiFeFInKzkZwCztA9DYOjSpNv
bJtUAaXLCZbem4NBeMm5
=UYke
-----END PGP SIGNATURE-----
Bastian Germann (1):
lvm: add readline alternative editline
David Teigland (62):
Revert "lvdisplay: dispaly correct status when underlying devs missing"
integrity: always default to journal mode
integrity: report raidintegritymode randintegrityblocksize
integrity: report mismatches
tests: add new integrity reporting fields
integrity: fix segfault for lv with no seg
integrity: improve lv type checks
hints: remove warning when clearing hint file
pvck: repair should clear hints
writecache: allow pvmove on origin
tests: fix pvck repair in hints.sh
integrity: fix segfault reporting integrity for other lvs
Revert "label: use formaters FMTu64 and FMTsize_t"
label: cleanup set_byte error exit
hints: enhance debug messages
configure: enable integrity by default
bcache: use indirection table for fd
metadata: open rw fd before closing ro fd
devices: fix reopen for unopened device
scanning: keep open an lvm device with scanning problem
lvpoll: don't use hints
tests: add case for metadata checksum differences
lvmlockd vdo: disallow use of shared lock on LV
lvmlockd vdo: add support
pvcreate/pvremove: reimplement device checks
writecache: use two step detach
tests: enable writecache test that uses cleaner
devices: support printing the filter that rejects a device
improve message for invalid device arg
improve message for invalid device arg in process_each_pv
lvconvert: move log message to fix segfault
tests: writecache-misc disable with lvmlockd
filters: allow filter wipe for one device
filters: nodata option
scanning: improve filtering control
lvmcache: add lvmcache_get_dev_mda
lvmcache: rename label_read label_scan_dev
add label_read_pvid
add label_scan_devs_cached
pvscan: rework to improve PVs without metadata
get dev size when setting pv device
pvcreate: clean up opening and filtering of args
lvchange: allow syncaction check with integrity
writecache: disallow partial or degraded activation
pvck: handle first mda at non-4096 offset
pvck: fix dev filtering
tests: revert lvm shell use in pvck-dump
Revert "tests: revert lvm shell use in pvck-dump"
pvck: fix previous commit
writecache: supported in dm-writecache version 3
tests: update integrity tests
integrity: display total mismatches at raid LV level
tests: integrity mismatch checks for all raid levels
lvchange: fix error for foreign vg activation
man: vgsplit source and destination VGs
lvm.conf: remove reference to locking_type
udev rule: remove lvmetad comments
man lvmcache: add writecache cleaner info
cache: activation cache_check on cachevol
writecache: fix uncache for two step detach
partial flag for writecache and integrity
lvconvert: chunksize option was missing with cachedevice
Heinz Mauelshagen (1):
Revert "lvconvert: display warning if raid1 LV image count does not change"
Marek Such��nek (1):
man: update writing style of the lvmvdo man page
Marian Csontos (9):
post-release
Update README
test: grep -q may fail and it does
Revert "tests: Adapt RAID test to changes"
gitignore: ignore gcov files
make: generate
build: make generate
configure: update
pre-release
Wu Guanghao (3):
pvmove: check return value of top_level_lv_name()
lvconvert_poll: ensure LV has snapshot type
lvconvert: check if LV has snapshot type
Zdenek Kabelac (204):
config: move some config setting into commented part
man: vdo improvals
wipe_lv: close devices on error path
config: drop reading file with mmap
tests: check we detect lvm.conf read failure
container_of: drop needless const converion
writecache: correct usage of const struct
lvmcache: use uint32_t for seqno caching
lv_manip: get_default_region_size return uint32_t
gcc: keep unsigned arithmetic
gcc: avoid stack alloc arithmetic
gcc: calc size in compile time
tools: move struct element before variable lenght list
gcc: use apropriate type for reading and printing values
gcc: do not use return with void function
gcc: drop bogus ;
WHATS_NEW: update
cachevol: correcting 64b math
tests: filefrag needs to support -e
dmsetup: initilize winsize struct
gcc: zero-sized array to fexlible array C99
gcc: preserve constness of buffer
gcc: keep using unsigned type
cov: always sure we end with '0'
cov: explicitely ignore function result
cov: always initialized values
cov: avoid duplicated assign
cleanup: matching declaration order
cleanup: user force_t enums instead of ints
cleanup: add spaces between literals
cleanup: better expressing passing key arg to _hash
pvck: use array of bytes
pvck: add simple check for fwrite
gcc: hide warn about possible uninitialized use of dev_ret
gcc: avoid shadowing of dev_name and pvs
tests: skip test when gcore cannot catch securetest
tests: set skipping autoactivation
tests: slightly faster
tests: skip this test for current 5.8 5.9 kernels
tests: add aux delayzero_dev support
tests: use delayzero_dev
lvconvert: flip return value of _raid_split_image_conversion
lv_manip: add synchronization points
raid: add _rimage and _rmeta as origin_only
raid: do not enforce flushing of raids when it is not required
tests: check for cache_version that supports v2
tests: check for writecache being compiled in
tests: tune extend test
Revert "raid: do not enforce flushing of raids when it is not required"
Revert "raid: add _rimage and _rmeta as origin_only"
man: correctly use configured directories
man: correcting vdo issues
configure: compile with vdo and writecache by default
lvextend: improve percentage estimation
lv_manip: relocate check to proper function
debug: drop debug trace from regular path
cleanup: comment typo
tests: disable dbustest with valgrind testing
tests: adding "" around DM_DEV_DIR
tests: aux collects stack trace when stuck is assumed
lv_manip: even better rounding
thin: compensate metadata size by extra percent
alloc: improve estimation of sufficient_pes_free
tests: have_cache function checks for cache-pool
tests: lower at_least to version 1.19
tests: reduce disk space usage by pvck-dump
tests: check for boundary allocation sizes
revert "lvconvert: check if LV has snapshot type"
lvconvert: check if LV has cow type
cov: drop model for origin_from_cow
cov: check sscanf result
cov: drop checking for EWOULDBLOCK
tests: skip test on failing kernel
tests: change skip to die for upstream crash
tests: support for 16T is needed
tests: avoid using string
locking: restore blocking signal for VG_GLOBAL lck
configure: just upper case start of sentence
headers: remove unused headers
cache: simplier signal handling
tests: check in_sync prints also dm status
tests: improve cache abort test
tests: raise needed target version
tests: tune usage of smaller metadata
tests: protect this test for another kernel
lvcreate: add extra synchronization at error path
lvcreate: change error message
hints: enhance debug with log_sys_debug
label: code deduplication
label: deduplicate dev_set_bytes
wipe: zeroing of 8 sectors is granted
wipe: convert zero_value to uint8_t
wipe: dev_set_bytes resolves zeroing
label: use formaters FMTu64 and FMTsize_t
tests: skip kernel for this test
tests: switch for checking version of installed tools
tests: fix bash regex syntax
tests: smaller delay and lowered version
tests: lower memory usage
tests: bigger data still needed for 0.7.0
tests: resolve missing removal of loopdevice on error path
tests: also use sed to shorten log output
tests: aux better handle invalid table
tests: utils better handle ouf of disk space
tests: inittest supports SKIP_WITH_LOW_SPACE
tests: enhance low-disk-space behavior
tests: update integrity-dmeventd
tests: printf to awk
tests: reduce disk usage
tests: ensure mnt is defined before trap install
tests: use faster awk generator
tests: use zero backend
tests: use parametrized function
bache: fix error return value
tests: check for cvol
tests: skip with fail of first prepare_scsi
tests: use 4K with mkfs.xfs
tests: use DIRECT io for zeroing whenver we can
tests: add FIXME case
tests: fix cleanup for unbound variables
activation: use revert_lv on tree suspend failure
vdo: drop unnecessary tabulator from metadata output
vdo: correct message about policy extend support
vdo: extend vdo segment validation
vdo: enhance vdo pool extension
tests: check vdopool policy extension
tests: update test
tests: move function to aux for reuse
tests: use aux wrapper and add more notes
vdo: disable support for online rename of vdopool LV
vdo: allow passing renamed vdopool name to kernel
lvconvert: suppport vdo raid conversion also through vpool
tests: a bit bigger mirrors
tests: add check for rename of cached vdopool
tests: basic test for vdo on raid LV
vgsplit: support for VDO volumes
thin: no delete message for device_id 0
thin: enhance lvcreate error paths
thin: improve error message
device_mapper: enhance error message
thin: pass through whole code
makefiles: document supported var in make help
tests: vgsplit of vdo volumes
tests: check some common errors
tests: also add thick snap of thin volume
tests: add small delay
configure: editline updates
configure: update help
activation: move locking of critical section
cleanup: avoid unneeded check
writecache: archive before modification of metadata
thin: use lv_status_thin and lv_status_thin_pool
thin: validate thin-pool state before sending messages
thin: remove unneeded code test
active: fix compilation without devmapper
debug: update debug message
debug: remove stacktrace on regular path
tests: thin-flags
configure: check for BLKZEROOUT support
configure: update with latest AM_PATH_PYTHON
configure: use our ordered list of python names
bcache: fix waiting problem for completed IO
bcache: fix busy loop with too many errors
bcache: support interrupts when waiting on IO
bcache: use flexible arrays
wipe_lv: drop label_scan_invalidate on error path
wipe_lv: interruptible wiping
wipe_lv: use BLKZEROOUT when possible
debug: update messages
debug: drop FD from error message
debug: show actually reason for taking this code path
debug: no backtrace
debug: drop vgid from debug
tests: rename shown debug trace
tests: aux hides zero and error device
tests: enable tests for lvmlockd
rpm: bare words are no longer supported
tests: extend area covered by error target
properties: fix data_usage typo
libdm: split code for sending message
libdm: enhance error message
libdm: validate thin-pool before sending messages
debug: shorten error message
dm: remove created devices on error path
cov: split check for type assignment
libdm: relocate code for sending messages
lvmcmdlib: lvm2_init_threaded
memlock: allocate at most halve of rlimit stack
tests: check dmevent with bigger reserved_stack
fsadm: use NULL
fsadm: handle fsck return 1 for corrected fs
fsadm: enhance error handling
tests: fsadm test continue after fs repair
lv_manip: add space into message
man: more precise UNIT
man: regenerate
WHATS_NEW: update
fsadm: better check for getsize64 support
tests: minor update
gcc: cleanup warns from older gcc
man: update vdo
man: update lvmvdo
fsadm: fix unbound variable usage
tests: few more fsadm checks
Zhao Heming (3):
lvdisplay: dispaly correct status when underlying devs missing
gcc: change zero-sized array to fexlible array
gitignore: ignore all cscope generated files
3 years, 2 months
main - post-release
by Marian Csontos
Gitweb: https://sourceware.org/git/?p=lvm2.git;a=commitdiff;h=6308365d485a741d36c...
Commit: 6308365d485a741d36c98060a00e95892fc3d21f
Parent: 3e8bd8d1bd70691f09a170785836aeb4f83154e6
Author: Marian Csontos <mcsontos(a)redhat.com>
AuthorDate: Thu Jan 7 18:09:07 2021 +0100
Committer: Marian Csontos <mcsontos(a)redhat.com>
CommitterDate: Fri Jan 8 10:08:36 2021 +0100
post-release
---
VERSION | 2 +-
VERSION_DM | 2 +-
WHATS_NEW | 3 +++
WHATS_NEW_DM | 3 +++
4 files changed, 8 insertions(+), 2 deletions(-)
diff --git a/VERSION b/VERSION
index 55f5caa3f..5723491c3 100644
--- a/VERSION
+++ b/VERSION
@@ -1 +1 @@
-2.03.11(2) (2021-01-08)
+2.03.12(2)-git (2021-01-08)
diff --git a/VERSION_DM b/VERSION_DM
index 6b83c6cee..380bd1ed5 100644
--- a/VERSION_DM
+++ b/VERSION_DM
@@ -1 +1 @@
-1.02.175 (2021-01-08)
+1.02.177-git (2021-01-08)
diff --git a/WHATS_NEW b/WHATS_NEW
index 18f503202..06ef5a4dc 100644
--- a/WHATS_NEW
+++ b/WHATS_NEW
@@ -1,3 +1,6 @@
+Version 2.03.12 -
+===================================
+
Version 2.03.11 - 08th January 2021
===================================
Fix pvck handling MDA at offset different from 4096.
diff --git a/WHATS_NEW_DM b/WHATS_NEW_DM
index 1ba361d3a..80ce15729 100644
--- a/WHATS_NEW_DM
+++ b/WHATS_NEW_DM
@@ -1,3 +1,6 @@
+Version 1.02.177 -
+====================================
+
Version 1.02.175 - 08th January 2021
====================================
3 years, 2 months
main - pre-release
by Marian Csontos
Gitweb: https://sourceware.org/git/?p=lvm2.git;a=commitdiff;h=3e8bd8d1bd70691f09a...
Commit: 3e8bd8d1bd70691f09a170785836aeb4f83154e6
Parent: e9503f257ad2e61742b0cfe2780b72739d1d3978
Author: Marian Csontos <mcsontos(a)redhat.com>
AuthorDate: Thu Jan 7 17:22:29 2021 +0100
Committer: Marian Csontos <mcsontos(a)redhat.com>
CommitterDate: Fri Jan 8 10:07:25 2021 +0100
pre-release
---
VERSION | 2 +-
VERSION_DM | 2 +-
WHATS_NEW | 9 +++++++--
WHATS_NEW_DM | 4 ++--
4 files changed, 11 insertions(+), 6 deletions(-)
diff --git a/VERSION b/VERSION
index a6ba8f65a..55f5caa3f 100644
--- a/VERSION
+++ b/VERSION
@@ -1 +1 @@
-2.03.11(2)-git (2020-08-09)
+2.03.11(2) (2021-01-08)
diff --git a/VERSION_DM b/VERSION_DM
index f44bc5f06..6b83c6cee 100644
--- a/VERSION_DM
+++ b/VERSION_DM
@@ -1 +1 @@
-1.02.175-git (2020-08-09)
+1.02.175 (2021-01-08)
diff --git a/WHATS_NEW b/WHATS_NEW
index 452a6317e..18f503202 100644
--- a/WHATS_NEW
+++ b/WHATS_NEW
@@ -1,5 +1,7 @@
-Version 2.03.11 -
-==================================
+Version 2.03.11 - 08th January 2021
+===================================
+ Fix pvck handling MDA at offset different from 4096.
+ Partial or degraded activation of writecache is not allowed.
Enhance error handling for fsadm and hanled correct fsck result.
Dmeventd lvm plugin ignores higher reserved_stack lvm.conf values.
Support using BLKZEROOUT for clearing devices.
@@ -20,6 +22,9 @@ Version 2.03.11 -
Enhance --use-policy percentage rounding.
Configure --with-vdo and --with-writecache as internal segments.
Improving VDO man page examples.
+ Allow pvmove of writecache origin.
+ Report integrity fields.
+ Integrity volumes defaults to journal mode.
Switch code base to use flexible array syntax.
Fix 64bit math when calculation cachevol size.
Preserve uint32_t for seqno handling.
diff --git a/WHATS_NEW_DM b/WHATS_NEW_DM
index 9624c0d78..1ba361d3a 100644
--- a/WHATS_NEW_DM
+++ b/WHATS_NEW_DM
@@ -1,5 +1,5 @@
-Version 1.02.175 -
-===================================
+Version 1.02.175 - 08th January 2021
+====================================
Version 1.02.173 - 09th August 2020
===================================
3 years, 2 months
main - lvconvert: chunksize option was missing with cachedevice
by David Teigland
Gitweb: https://sourceware.org/git/?p=lvm2.git;a=commitdiff;h=e9503f257ad2e61742b...
Commit: e9503f257ad2e61742b0cfe2780b72739d1d3978
Parent: b84a9927b78727efffbb257a61e9e95a648cdfab
Author: David Teigland <teigland(a)redhat.com>
AuthorDate: Thu Jan 7 13:30:48 2021 -0600
Committer: David Teigland <teigland(a)redhat.com>
CommitterDate: Thu Jan 7 13:30:48 2021 -0600
lvconvert: chunksize option was missing with cachedevice
---
test/shell/cachevol-cachedevice.sh | 13 +++++++++++++
tools/command-lines.in | 2 +-
2 files changed, 14 insertions(+), 1 deletion(-)
diff --git a/test/shell/cachevol-cachedevice.sh b/test/shell/cachevol-cachedevice.sh
index 3831ee9d4..2695c989b 100644
--- a/test/shell/cachevol-cachedevice.sh
+++ b/test/shell/cachevol-cachedevice.sh
@@ -144,6 +144,19 @@ lvconvert -y --type cache --cachedevice "$dev2" $vg/$lv1
check lv_field $vg/$lv1 segtype cache
check lv_field $vg/${lv1}_cache_cvol segtype linear -a
check lv_field $vg/${lv1}_cache_cvol lv_size "60.00m"
+lvs -o chunksize $vg/$lv1 |tee out
+grep 64.00k out
+lvchange -ay $vg/$lv1
+lvchange -an $vg/$lv1
+lvremove $vg/$lv1
+
+lvcreate -n $lv1 -l8 -an $vg "$dev1"
+lvconvert -y --type cache --cachedevice "$dev2" --chunksize 128k $vg/$lv1
+check lv_field $vg/$lv1 segtype cache
+check lv_field $vg/${lv1}_cache_cvol segtype linear -a
+check lv_field $vg/${lv1}_cache_cvol lv_size "60.00m"
+lvs -o chunksize $vg/$lv1 |tee out
+grep 128.00k out
lvchange -ay $vg/$lv1
lvchange -an $vg/$lv1
lvremove $vg/$lv1
diff --git a/tools/command-lines.in b/tools/command-lines.in
index 5a8523966..8ea65ca83 100644
--- a/tools/command-lines.in
+++ b/tools/command-lines.in
@@ -505,7 +505,7 @@ DESC: Add a writecache to an LV, using a specified cache device.
RULE: all and lv_is_visible
lvconvert --type cache --cachedevice PV LV_linear_striped_raid_thinpool
-OO: OO_LVCONVERT, --cachesize SizeMB, --cachesettings String
+OO: OO_LVCONVERT, --cachesize SizeMB, --cachesettings String, --chunksize SizeKB
ID: lvconvert_to_cache_with_device
DESC: Add a cache to an LV, using a specified cache device.
RULE: all and lv_is_visible
3 years, 2 months
stable-2.02 - vgextend: check missing device during block size check
by David Teigland
Gitweb: https://sourceware.org/git/?p=lvm2.git;a=commitdiff;h=b98c3346350b7c27014...
Commit: b98c3346350b7c270140c1f21fda0436876e16e8
Parent: 92a67e3d3f84825c7be92d0d2259fa92b56092b9
Author: David Teigland <teigland(a)redhat.com>
AuthorDate: Tue Sep 3 10:07:56 2019 -0500
Committer: David Teigland <teigland(a)redhat.com>
CommitterDate: Tue Jan 5 10:19:01 2021 -0600
vgextend: check missing device during block size check
Checking the block size when a device is missing could
trigger a segfault.
---
lib/metadata/metadata.c | 3 +++
1 file changed, 3 insertions(+)
diff --git a/lib/metadata/metadata.c b/lib/metadata/metadata.c
index fd10a02da..6c4683aa3 100644
--- a/lib/metadata/metadata.c
+++ b/lib/metadata/metadata.c
@@ -718,6 +718,9 @@ int vg_extend_each_pv(struct volume_group *vg, struct pvcreate_params *pp)
logical_block_size = 0;
physical_block_size = 0;
+ if (!pvl->pv->dev)
+ continue;
+
if (!dev_get_direct_block_sizes(pvl->pv->dev, &physical_block_size, &logical_block_size))
continue;
3 years, 2 months