Hello community, here is the log from the commit of package lvm2 for openSUSE:Factory checked in at 2018-07-28 12:36:27 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/lvm2 (Old) and /work/SRC/openSUSE:Factory/.lvm2.new (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "lvm2" Sat Jul 28 12:36:27 2018 rev:118 rq:623586 version:2.02.177 Changes: -------- --- /work/SRC/openSUSE:Factory/lvm2/device-mapper.changes 2018-06-03 12:31:49.729802989 +0200 +++ /work/SRC/openSUSE:Factory/.lvm2.new/device-mapper.changes 2018-07-28 12:36:29.123974419 +0200 @@ -1,0 +2,6 @@ +Wed Jul 18 11:33:30 UTC 2018 - g...@suse.com + +- Fix issuing discard in test mode (bsc#1095960) + + bug-1095960_dev_io-no-discard-in-testmode.patch + +------------------------------------------------------------------- lvm2-clvm.changes: same change lvm2.changes: same change New: ---- bug-1095960_dev_io-no-discard-in-testmode.patch ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ device-mapper.spec ++++++ --- /var/tmp/diff_new_pack.yUu4HG/_old 2018-07-28 12:36:31.559979094 +0200 +++ /var/tmp/diff_new_pack.yUu4HG/_new 2018-07-28 12:36:31.563979101 +0200 @@ -48,6 +48,7 @@ ### COMMON-PATCH-BEGIN ### # Upstream patches Patch0001: fate-323203_lvmlockd-add-lockopt-values-for-skipping-selected-lo.patch +Patch0002: bug-1095960_dev_io-no-discard-in-testmode.patch # SUSE patches: 1000+ for LVM # Never upstream @@ -71,6 +72,7 @@ ### COMMON-PREP-BEGIN ### %patch1001 -p1 %patch0001 -p1 +%patch0002 -p1 %patch1002 -p1 %patch1003 -p1 %patch1004 -p1 lvm2-clvm.spec: same change lvm2.spec: same change ++++++ bug-1095960_dev_io-no-discard-in-testmode.patch ++++++ >From b8a7f6ba3de6aed38c2969693b6064a943ea8799 Mon Sep 17 00:00:00 2001 From: Zdenek Kabelac <zkabe...@redhat.com> Date: Sun, 8 Jul 2018 21:11:01 +0200 Subject: [PATCH] dev_io: no discard in testmode When lvm2 command is executed in test mode, discard ioctl is skipped. This may cause even data-loose in case, issuing discard for released areas was enabled and user 'tested' lvreduce. --- lib/device/dev-io.c | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/lib/device/dev-io.c b/lib/device/dev-io.c index 145093f17..2a4967fc1 100644 --- a/lib/device/dev-io.c +++ b/lib/device/dev-io.c @@ -411,9 +411,11 @@ static int _dev_discard_blocks(struct device *dev, uint64_t offset_bytes, uint64 discard_range[0] = offset_bytes; discard_range[1] = size_bytes; - log_debug_devs("Discarding %" PRIu64 " bytes offset %" PRIu64 " bytes on %s.", - size_bytes, offset_bytes, dev_name(dev)); - if (ioctl(dev->fd, BLKDISCARD, &discard_range) < 0) { + log_debug_devs("Discarding %" PRIu64 " bytes offset %" PRIu64 " bytes on %s. %s", + size_bytes, offset_bytes, dev_name(dev), + test_mode() ? " (test mode - suppressed)" : ""); + + if (!test_mode() && ioctl(dev->fd, BLKDISCARD, &discard_range) < 0) { log_error("%s: BLKDISCARD ioctl at offset %" PRIu64 " size %" PRIu64 " failed: %s.", dev_name(dev), offset_bytes, size_bytes, strerror(errno)); if (!dev_close(dev)) -- 2.12.3