]> sourceware.org Git - lvm2.git/log
lvm2.git
3 days agomemlock: skip locking unused libs main master 1617968974
Zdenek Kabelac [Thu, 9 Jan 2025 13:16:32 +0000 (14:16 +0100)]
memlock: skip locking unused libs

Skip memlocking libraries unused in critical section.

3 days agoWHATS_NEW: update 1617037414
Zdenek Kabelac [Wed, 8 Jan 2025 22:05:12 +0000 (23:05 +0100)]
WHATS_NEW: update

3 days agoconfigure: autoreconf
Zdenek Kabelac [Tue, 7 Jan 2025 14:37:29 +0000 (15:37 +0100)]
configure: autoreconf

3 days agoconfigure.ac: notify_dbus works fine with older version
Zdenek Kabelac [Tue, 7 Jan 2025 14:36:24 +0000 (15:36 +0100)]
configure.ac: notify_dbus works fine with older version

Picking version 218 for notify_dbus support - maybe older works too,
but not being tested...

3 days agoconfigure.ac: report 'none' when nvme_wwid is missing
Zdenek Kabelac [Tue, 7 Jan 2025 14:35:42 +0000 (15:35 +0100)]
configure.ac: report 'none' when nvme_wwid is missing

3 days agocov: check syscall
Zdenek Kabelac [Wed, 8 Jan 2025 23:17:54 +0000 (00:17 +0100)]
cov: check syscall

3 days agocov: just be sure nsid is defined
Zdenek Kabelac [Wed, 8 Jan 2025 23:14:33 +0000 (00:14 +0100)]
cov: just be sure nsid is defined

3 days agocov: remove unused header
Zdenek Kabelac [Wed, 8 Jan 2025 23:10:40 +0000 (00:10 +0100)]
cov: remove unused header

3 days agocov: some error path updates
Zdenek Kabelac [Tue, 7 Jan 2025 14:33:58 +0000 (15:33 +0100)]
cov: some error path updates

3 days agotests: cleanup typo
Zdenek Kabelac [Thu, 19 Dec 2024 14:43:10 +0000 (15:43 +0100)]
tests: cleanup typo

3 days agoman: fix double words
Masanari Iida [Sat, 7 Dec 2024 07:11:53 +0000 (16:11 +0900)]
man: fix double words

This patch fixes double words found in man.

Signed-off-by: Masanari Iida <standby24x7@gmail.com>
3 days agotests: test unsupported lvresize of origin vdo lv
Zdenek Kabelac [Wed, 8 Jan 2025 21:57:29 +0000 (22:57 +0100)]
tests: test unsupported lvresize of origin vdo lv

3 days agotests: check memory locking
Zdenek Kabelac [Wed, 8 Jan 2025 17:29:31 +0000 (18:29 +0100)]
tests: check memory locking

Check reserved memory and stack is able to disable mlocking.

3 days agolvresize: vdo origin resize is unsupported
Zdenek Kabelac [Wed, 8 Jan 2025 21:56:33 +0000 (22:56 +0100)]
lvresize: vdo origin resize is unsupported

Add explicit error message for not (yet) supported resize
of origin VDO volume.

3 days agolvmcmdline: memlock init after config parsing
Zdenek Kabelac [Wed, 8 Jan 2025 17:27:04 +0000 (18:27 +0100)]
lvmcmdline: memlock init after config parsing

Since we now support disabling memory locking by setting
reserved memory or stack to 0 - it would be useful if this would
work also with cmdline --config option.

TODO: rework creation and usage of cmdtool context so we avoid
several places in the code which do try to initialized something...

3 days agomemlock: check for proper reserved size
Zdenek Kabelac [Wed, 8 Jan 2025 16:48:53 +0000 (17:48 +0100)]
memlock: check for proper reserved size

Fix regression introduced with commit:
964012fdb924076e9ab97fabe00e759ddbf7c3bd
that effectively disabled memory locking before suspending volumes.
From merging/testing there remained wrong condition
as we really want to check for 0 memory reservation value
for both checked settings.

5 days agoWHATS_NEW: update 1613200875
Peter Rajnoha [Mon, 6 Jan 2025 14:35:44 +0000 (15:35 +0100)]
WHATS_NEW: update

5 days agotests: adjust lvresize-xfs tests for recent lvextend changes dev-prajnoha-lvextend-early-fsinfo
Peter Rajnoha [Fri, 3 Jan 2025 14:26:27 +0000 (15:26 +0100)]
tests: adjust lvresize-xfs tests for recent lvextend changes

Because now, we are doing the fsinfo check before extending an LV and if
that check fails, we do not proceed to the LV extension itself and the
lvextend command bails out immediatelly.

5 days agofilesystem: add new_size_bytes to struct fs_info
Peter Rajnoha [Fri, 3 Jan 2025 12:06:27 +0000 (13:06 +0100)]
filesystem: add new_size_bytes to struct fs_info

It seems we need new_size_bytes in places where struct fs_info is also
passed. Store the new_size_bytes inside the struct fs_info so we
can just pass that one to all the functions we call and hence make
the code a bit cleaner and easier to follow.

5 days agolv_manip: check fs resize is supported before LV extension
Peter Rajnoha [Fri, 3 Jan 2025 09:52:47 +0000 (10:52 +0100)]
lv_manip: check fs resize is supported before LV extension

This avoids a situation where we would extend an LV and then we would
not do anything to the FS on it because the FS info check failed for some
reason, like the type was not supported (e.g. swap) or we could not resize
the FS unless being in some supported state (e.g. XFS to be mounted for
the xfs_growfs to work).

Before this patch (LV resized, FS not resized):

❯  lvextend --fs resize -L+4M vg/swap
  Size of logical volume vg/swap changed from 32.00 MiB (8 extents) to 36.00 MiB (9 extents).
  File system extend is not supported (swap).
  File system extend error.
  Logical volume vg/swap successfully resized.

With this patch (LV not resized, FS not resized):

❯  lvextend --fs resize -L+4M vg/swap
  File system extend is not supported (swap).

3 weeks agoWHATS_NEW: update 1596141712
Zdenek Kabelac [Thu, 19 Dec 2024 13:57:43 +0000 (14:57 +0100)]
WHATS_NEW: update

3 weeks agomake: generate
Zdenek Kabelac [Thu, 19 Dec 2024 13:55:56 +0000 (14:55 +0100)]
make: generate

3 weeks agoargs: missed option all for vgdisplay
Zdenek Kabelac [Thu, 19 Dec 2024 13:55:25 +0000 (14:55 +0100)]
args: missed option all for vgdisplay

3 weeks agotests: check conversion of in-use volume
Zdenek Kabelac [Thu, 19 Dec 2024 13:50:32 +0000 (14:50 +0100)]
tests: check conversion of in-use volume

Thin-pool conversion fails early when trying to convert
volume which is in use  (simulated by sleep <)

3 weeks agothin: deactivate converted volume early
Zdenek Kabelac [Thu, 19 Dec 2024 13:47:16 +0000 (14:47 +0100)]
thin: deactivate converted volume early

Deactivate converted volume to pool early, so the conversion
exits early and does not leave some already created metadata
volumes that needed manual cleanup by user after command
aborted its conversion operation when the converted volume
was actually in-use  (i.e. when user tried to convert
a mounted LV into a thin-pool, 2 extra volumes needed removal).

4 weeks agoconfigure: autoreconf dev-dct-libnvme 1584733990
Zdenek Kabelac [Mon, 9 Dec 2024 13:35:16 +0000 (14:35 +0100)]
configure: autoreconf

4 weeks agoconfigure.ac: add support for libnvme
Zdenek Kabelac [Mon, 9 Dec 2024 13:33:39 +0000 (14:33 +0100)]
configure.ac: add support for libnvme

Add 2 new options for linking  libnvme with lvm2.
Option  --without-libnvme, --disable-nvme-wwid

4 weeks agodevice_id: nvme devices may use alternate wwids
David Teigland [Fri, 6 Dec 2024 21:02:20 +0000 (15:02 -0600)]
device_id: nvme devices may use alternate wwids

Device quirks may cause sysfs wwid file to change what it
displays, from a bogus eui... string to an nvme... string.

The old wwid may be saved in system.devices, so recognizing
the device requires finding the old value from libnvme.

After matching the old bogus value using libnvme, system.devices
is updated with the current sysfs wwid value.

4 weeks agodoc: Fix limit for inlined release notes 1580575289
Marian Csontos [Mon, 9 Dec 2024 16:38:52 +0000 (17:38 +0100)]
doc: Fix limit for inlined release notes

4 weeks agoudev: create /dev/disk/by-diskseq/<DISKSEQ> symlink for public DM devices 1580111766
Peter Rajnoha [Mon, 9 Dec 2024 12:05:03 +0000 (13:05 +0100)]
udev: create /dev/disk/by-diskseq/<DISKSEQ> symlink for public DM devices

All block devices have a disk sequence number assigned (an ever-increasing 64 bit
sequence number) since kernel v5.15 (February 2021). The number is exported through
/sys/block/<disk>/diskseq property and also as DISKSEQ udev event variable.
The diskseq helps with referencing a device throughout its existence in
race-free way.

By default, the /usr/lib/udev/rules.d/60-persistent-storage.rules set
/dev/disk/by-diskseq/<diskseq> symlink for each block device. However,
these rules do not apply for DM devices because we manage the symlinks
ourselves in 13-dm-disk.rules where it properly follows the
DM_UDEV_DISABLE_DISK_RULES flag, among other things.

Add a rule to 13-dm-disk.rules to create the /dev/disk/by-diskseq/<diskseq>.

4 weeks agopost-release 1580078260
Marian Csontos [Mon, 9 Dec 2024 11:57:57 +0000 (12:57 +0100)]
post-release

4 weeks agopre-release 2.03.29 1580078454 v2_03_29
Marian Csontos [Mon, 9 Dec 2024 11:57:57 +0000 (12:57 +0100)]
pre-release 2.03.29

5 weeks agoWHATS_NEW: update 1577205962
Zdenek Kabelac [Fri, 6 Dec 2024 16:21:15 +0000 (17:21 +0100)]
WHATS_NEW: update

5 weeks agomake: generate
Zdenek Kabelac [Fri, 6 Dec 2024 16:22:33 +0000 (17:22 +0100)]
make: generate

5 weeks agoconfigure: autoreconf
Zdenek Kabelac [Fri, 6 Dec 2024 16:02:24 +0000 (17:02 +0100)]
configure: autoreconf

5 weeks agolvmlockd: utilize SD_NOTIFY_SUPPORT
Zdenek Kabelac [Fri, 6 Dec 2024 16:13:24 +0000 (17:13 +0100)]
lvmlockd: utilize SD_NOTIFY_SUPPORT

Update makefile and code to better utilize SD_NOTIFY_SUPPORT var.

5 weeks agoconfigure.ac: add option disable/enable-sd-notify
Su Yue [Tue, 26 Nov 2024 06:23:04 +0000 (14:23 +0800)]
configure.ac: add option disable/enable-sd-notify

Since commit d106ac04ab34 ("configure.ac: use LIBSYSTEMD"),
lvmlockd is not built with SD_NOTIFY by default but depending
on LIBSYSTEMD_LIBS. There are three prerequisites of
nonempty LIBSYSTEMD_LIBS:
NOTIFYDBUS_SUPPORT, SYSTEMD_JOURNAL_SUPPORT and SYSTEMD_JOURNAL_SUPPORT.

If ./configure is called with options ' --disable-systemd-journal
--disable-app-machineid --enable-lvmlockd-sanlock
--disable-notify-dbus', the lvmlockd built is without sd_notify
support which causes hang of start lvmlockd service in notify type.

This commit adds options disable-sd-notify and enable-sd-notify.
The default value is autodetected and when the lvm2 is build with
systemd then sd-notify is enabled.
If systemd/sd-daemon.h is existed, call PKG_CHECK_MODULES libsystemd.

Signed-off-by: Su Yue <glass.su@suse.com>
Modified-by: Zdenek Kabelac <zkabelac@redhat.com>
5 weeks agovgdisplay: remove command def for activevolumegroups 1577104633
David Teigland [Fri, 6 Dec 2024 15:18:23 +0000 (09:18 -0600)]
vgdisplay: remove command def for activevolumegroups

too minor to care about separating

5 weeks agopvdisplay, vgdisplay, lvdisplay: changed listed order 1575897483
David Teigland [Thu, 5 Dec 2024 22:09:19 +0000 (16:09 -0600)]
pvdisplay, vgdisplay, lvdisplay: changed listed order

List the common form first, followed by the others.

5 weeks agovgdisplay: add command def for activevolumegroups
David Teigland [Thu, 5 Dec 2024 21:55:26 +0000 (15:55 -0600)]
vgdisplay: add command def for activevolumegroups

This variant does not accecpt positional args like
the others.

5 weeks agovgdisplay: split code for variants using command defs
David Teigland [Thu, 5 Dec 2024 21:31:31 +0000 (15:31 -0600)]
vgdisplay: split code for variants using command defs

5 weeks agopvdisplay: split code for variants using command defs
David Teigland [Thu, 5 Dec 2024 20:50:06 +0000 (14:50 -0600)]
pvdisplay: split code for variants using command defs

Also fix the use of --all that was mistakenly included
as an accepted option for vgdisplay and two cases of pvdisplay
in commit "tools: enhance lvdisplay vgdisplay pvdisplay"

5 weeks agolvdisplay: split code for variants using command defs
David Teigland [Thu, 5 Dec 2024 19:40:44 +0000 (13:40 -0600)]
lvdisplay: split code for variants using command defs

5 weeks agodoc: Amend 2.03.27 and 28 release notes' date 1575186893
Marian Csontos [Thu, 5 Dec 2024 13:39:20 +0000 (14:39 +0100)]
doc: Amend 2.03.27 and 28 release notes' date

5 weeks agotests: make reshape bug more easier to hit 1573407891
Zdenek Kabelac [Mon, 2 Dec 2024 14:31:29 +0000 (15:31 +0100)]
tests: make reshape bug more easier to hit

Seems this delay_dev usage exposing some reshape window creation bug.
So make delay bigger to hit the error easier.

5 weeks agotests: do not use noudevsync with udev system
Zdenek Kabelac [Wed, 4 Dec 2024 15:03:09 +0000 (16:03 +0100)]
tests: do not use  noudevsync with udev system

Remove --noudevsync option - as this breaks synchronization with
udev which is necessary when trying to i.e. create  _rmeta_3
and wipe it - as the symlinks must be present for wiping.

So if there was some other issue  (behind the comment) - we need to
check for the problem elsewhere instead of disabling udev sync.

5 weeks agodebug: missing stack
Zdenek Kabelac [Wed, 4 Dec 2024 15:02:44 +0000 (16:02 +0100)]
debug: missing stack

5 weeks agodoc: Update WHATS_NEW and Release notes 1570824628
Marian Csontos [Tue, 3 Dec 2024 12:07:03 +0000 (13:07 +0100)]
doc: Update WHATS_NEW and Release notes

6 weeks agoconfigure: autoreconf 1560999688
Zdenek Kabelac [Tue, 26 Nov 2024 13:36:01 +0000 (14:36 +0100)]
configure: autoreconf

6 weeks agoconfigure.ac: build lvmlockd with notify
Zdenek Kabelac [Tue, 26 Nov 2024 13:34:49 +0000 (14:34 +0100)]
configure.ac: build lvmlockd with notify

Automatically use --enable-notify-dbus when building lvmlockd
if not configured otherwise by a configure user -
as the lvmlockd.service is notify based.

6 weeks agotest: Prevent incorrect value propagating into test 1560874537
Marian Csontos [Tue, 26 Nov 2024 12:25:49 +0000 (13:25 +0100)]
test: Prevent incorrect value propagating into test

In case dbus-send is not present previous random value of i was tested.

6 weeks agospec: Remove [Build]Requires for cluster 1560624622
Marian Csontos [Tue, 26 Nov 2024 09:55:26 +0000 (10:55 +0100)]
spec: Remove [Build]Requires for cluster

6 weeks agolvmlockd: allow test mode when dlm is not built 1559690646
David Teigland [Mon, 25 Nov 2024 18:07:30 +0000 (12:07 -0600)]
lvmlockd: allow test mode when dlm is not built

6 weeks agoman: lvmraid integrity updates 1559547349
David Teigland [Mon, 25 Nov 2024 16:22:43 +0000 (10:22 -0600)]
man: lvmraid integrity updates

6 weeks agodbus: Add function for running lconvert --repair on RAID LVs 19/head 1559329518
Vojtech Trefny [Thu, 21 Nov 2024 14:14:10 +0000 (15:14 +0100)]
dbus: Add function for running lconvert --repair on RAID LVs

6 weeks agotests: increase mirror size 1559214947
Zdenek Kabelac [Mon, 25 Nov 2024 13:16:55 +0000 (14:16 +0100)]
tests: increase mirror size

On fast machines mirror throttling starts to react much later
so try bigger mirror size to fight with race in test.

6 weeks agoman: update display fields
Zdenek Kabelac [Mon, 25 Nov 2024 13:03:51 +0000 (14:03 +0100)]
man: update display fields

The --sort option belongs to  '-C' columned output only.
Also add short commmand description for specialized
vg/pv/lvdisplay command.

7 weeks agomake: generate 1556330366
Zdenek Kabelac [Fri, 22 Nov 2024 12:25:37 +0000 (13:25 +0100)]
make: generate

7 weeks agotools: enhance lvdisplay vgdisplay pvdisplay
Zdenek Kabelac [Fri, 22 Nov 2024 12:25:29 +0000 (13:25 +0100)]
tools: enhance lvdisplay vgdisplay pvdisplay

Split description for display commands so we can better describe
it's usage and combination of individual options in man page.

Now we can separately describe:

lvdisplay, lvdisplay -c, lvdisplay -C
vgdisplay, vgdisplay -c, vgdisplay -C
pvdisplay, pvdisplay -c, pvdisplay -C

TODO: Drop validation from command code itself.

7 weeks agoargs: add colon and column for pv/vg/lvdisplay
Zdenek Kabelac [Thu, 21 Nov 2024 21:46:59 +0000 (22:46 +0100)]
args: add colon and column for pv/vg/lvdisplay

Better description for --colon and --column option for
pvdisplay, vgdisplay, lvdisplay.

7 weeks agoman: clean
Zdenek Kabelac [Wed, 20 Nov 2024 12:44:35 +0000 (13:44 +0100)]
man: clean

Both branches printed new line.

7 weeks agoman: refactor check for variant
Zdenek Kabelac [Wed, 20 Nov 2024 11:35:17 +0000 (12:35 +0100)]
man: refactor check for variant

Remove unnecessary checks and move the comment to the 1st. check.

7 weeks agoman: refactor printing option
Zdenek Kabelac [Wed, 20 Nov 2024 11:35:01 +0000 (12:35 +0100)]
man: refactor printing option

When generating man pages, use a single function to print
option with its short & long name.

7 weeks agoman: enhance handling of option description
Zdenek Kabelac [Thu, 21 Nov 2024 21:47:11 +0000 (22:47 +0100)]
man: enhance handling of option description

Update the _print_man_option_desc() to also handle common parts
as the initial text without any specified section and also
add support for '#\n' to be able to revert to common part.

8 weeks agotest: shellcheck: use quotation marks 1545365514
Zdenek Kabelac [Thu, 14 Nov 2024 16:49:36 +0000 (17:49 +0100)]
test: shellcheck: use quotation marks

8 weeks agotest: shellcheck: add shell directive
Zdenek Kabelac [Thu, 14 Nov 2024 16:55:34 +0000 (17:55 +0100)]
test: shellcheck: add shell directive

Also add forgotten standard copyright message with shell reference.

8 weeks agoshellcheck: separate declaration and assign
Zdenek Kabelac [Thu, 14 Nov 2024 16:48:52 +0000 (17:48 +0100)]
shellcheck: separate declaration and assign

So the error exit code can be processed if needed...

8 weeks agoshellcheck: validate cd success
Zdenek Kabelac [Thu, 14 Nov 2024 16:48:06 +0000 (17:48 +0100)]
shellcheck: validate cd success

8 weeks agoWHATS_NEW: update 1540282527
Zdenek Kabelac [Wed, 13 Nov 2024 12:06:15 +0000 (13:06 +0100)]
WHATS_NEW: update

8 weeks agotests: improve tracing messages
Zdenek Kabelac [Mon, 11 Nov 2024 21:17:05 +0000 (22:17 +0100)]
tests: improve tracing messages

Avoid printing lvm2 command trace, if the test finds the 'dmeventd'
was started unxpectedly during testing as the last command is hardly
ever responsible for this

Also reorder some messages when doing teardown of devices.

Do not print 'help' message from hostname command, when it does
not support option '-I'.

8 weeks agotests: check _tdata conversion to raid1
Zdenek Kabelac [Wed, 13 Nov 2024 11:59:27 +0000 (12:59 +0100)]
tests: check _tdata conversion to raid1

8 weeks agoraid: fix name rotation
Zdenek Kabelac [Wed, 13 Nov 2024 11:52:18 +0000 (12:52 +0100)]
raid: fix name rotation

Since we now keep lv names valid all the time (as they are part
of radix_tree) - there is a problem with this renaming code, that
for a moment used duplicated name in vg struct.

Fix it by interating LVs backwared - which avoids breaking consitency
and also actually makes code more simple.

2 months agotests: aux check for leaked symlinks 1534039659
Zdenek Kabelac [Fri, 8 Nov 2024 18:34:00 +0000 (19:34 +0100)]
tests: aux check for leaked symlinks

Add check for 'leaked' symlinks after test and trap
the case when some 'danglink' links are present.
This might be some problem with udev synchronization
or some other strange race.

All such symlinks will be also removed so they will not
influence following tests.

2 months agotests: check vdo minimum_io_size
Zdenek Kabelac [Fri, 8 Nov 2024 15:38:29 +0000 (16:38 +0100)]
tests: check vdo minimum_io_size

2 months agodebug: remove unused define
Zdenek Kabelac [Thu, 7 Nov 2024 21:39:41 +0000 (22:39 +0100)]
debug: remove unused define

2 months agodevice_mapper: suppress warns about inactive query
Zdenek Kabelac [Thu, 7 Nov 2024 17:46:24 +0000 (18:46 +0100)]
device_mapper: suppress warns about inactive query

When command prints warning about suppressing query
for inactive table, because this is not supported
by kernel - 1 printed message is just enough, no
reason to 'spam' command output all the time, message
will remain only in debug log.

Also drop 'WARNING:' from real 'error' message.
WARNIGS are supposed to be just warning and command
then exists with 'success'.

2 months agovdo: fix input units for minimim_io_size
Zdenek Kabelac [Fri, 8 Nov 2024 15:12:30 +0000 (16:12 +0100)]
vdo: fix input units for minimim_io_size

When specifying minimum_io_size with --vdosettings,
command assumed wrong unit (sectors).

So '--vdosettings minimum_io_size=512|4096' resulted into
an error that only 512 or 4096 values are allowed, but
at the same time values  1 or 8 were accepted.

So fix by converting any number >= 512 to 'sectors' and
keep input of 1 or 8 still valid if anyone has been using
this before.

So now we take  512 or 4096  and still also  1 or 8 with the
same effect.

Also correct the 'error' message when invalid minimum_io_size
is specified.

2 months agoWHATS_NEW: update 1531363539
Peter Rajnoha [Wed, 6 Nov 2024 09:39:27 +0000 (10:39 +0100)]
WHATS_NEW: update

2 months agotests: remove superfluous -a option for df used in lvresize-xfs.sh
Peter Rajnoha [Tue, 5 Nov 2024 13:20:59 +0000 (14:20 +0100)]
tests: remove superfluous -a option for df used in lvresize-xfs.sh

The df -a looks at whole system and it returns an error code in case
there's an inaccessible fs which is not even part of the testing environment.
The -a for df is not actually needed here in the lvresize-xfs test, so remove it.

2 months agolv_manip: use the same param validation for RAID 0 as for RAID 1/4/5/6
Peter Rajnoha [Tue, 5 Nov 2024 13:48:23 +0000 (14:48 +0100)]
lv_manip: use the same param validation for RAID 0 as for RAID 1/4/5/6

This actually reverts commit 83ae675f8df53010c984b78d0318d0d92d5ac83a.

2 months agolv_manip: fix stripe count and size validation for RAID LVs
Peter Rajnoha [Tue, 5 Nov 2024 08:26:03 +0000 (09:26 +0100)]
lv_manip: fix stripe count and size validation for RAID LVs

Fix stripe count and size parameter validation for RAID LVs and
include existing automatic setting of these parameters based
on current shape of the RAID LV in case these are not set
on command line fully.

Previously, this was done only to a certain subset given by this
condition (where the 'stripes' is the '-i|--stripes' cmd line arg
and  the 'stripe_size' is actually the '-I|--stripesize' cmd line arg):

  !(stripes == 1 || (stripes > 1 && stripe_size))

This condition is a bit harder to follow at first sight and there
are no comments around with explanation for why this one is used,
so let's analyze it a bit more.

First, let's convert this to an equivalent condition (De Morgan law)
so it's easier to read for humans:

  stripes != 1 && !(stripes > 1 && stripe_size)

Note: Both stripe and stripesize are unsigned integers, so they can't be negative.

Now, based on that condition, we were running the code to deduce the
stripe/stripesize and do the checks ("the code") only if both of these
are true:

  - stripes is different from 1

  - we don't have stripes > 1 and stripe_size defined at the same time

But this is not correct in all cases, because:

  A) if someone uses stripes = 0, then "the code" is executed
    (correct)

  B) if someone uses stripes = 1, then "the code" is not executed
    (wrong: we still need to be able to check the args against
            existing RAID LV stripes whether it matches)

  - if someone uses stripes > 1, then "the code" is:

     C) if stripe_size = 0, executed
       (correct)

     D) if stripe_size > 0, not executed
       (wrong: we still want to check against existing RAID LV stripes)

Current issues with this condition:
  The B) ends up with segfault.

    ❯ lvextend -i 1 -l+1 vg/lvol0
      Rounding size 4.00 MiB (1 extents) up to stripe boundary size 8.00 MiB (2 extents).
    Segmentation fault (core dumped)

  The D) ends up with errors like:

    ❯ lvextend -i 3 -l+1 -I128k vg/lvol0
      Rounding size 4.00 MiB (1 extents) up to stripe boundary size 8.00 MiB (2 extents).
      Rounding size (4 extents) up to stripe boundary size for segment (5 extents).
      Size of logical volume vg/lvol0 changed from 8.00 MiB (2 extents) to 20.00 MiB (5 extents).
      LV lvol0: segment 1 with len=5  has inconsistent area_len 3
      Couldn't read all logical volumes for volume group vg.
      Failed to write VG vg.

Conclusion:
  The condition needs to be removed so we always run "the code" to check
  given striping args given on command line against existing RAID LV
  striping. The reason is that we don't want to allow changing stripe
  count for RAID LVs through lvextend and we need to end up with the
  error:
    "Unable to extend <RAID segment type> segment type with different number of stripes"

  (We do support changing the striping by lvconvert's reshaping functionality only).

2 months agomakefiles: flip condition 1529641299
Zdenek Kabelac [Wed, 6 Nov 2024 11:33:24 +0000 (12:33 +0100)]
makefiles: flip condition

With previous commit, in this case we need to flip condition,
to make it working here as expected.

2 months agogcc: do not mix signess compare 1528848320
Zdenek Kabelac [Tue, 5 Nov 2024 23:03:53 +0000 (00:03 +0100)]
gcc: do not mix signess compare

2 months agogcc: make older compilers happier
Zdenek Kabelac [Mon, 4 Nov 2024 16:42:34 +0000 (17:42 +0100)]
gcc: make older compilers happier

Use {{}} for array initializer to quite warning for older gcc.

2 months agomakefiles: eliminate error output
Zdenek Kabelac [Tue, 5 Nov 2024 19:04:23 +0000 (20:04 +0100)]
makefiles: eliminate error output

Hide error message from 'find', if the 'lib' dir has
not been create yet (in case of non-srcdir build).

2 months agomakefiles: use filter
Zdenek Kabelac [Tue, 5 Nov 2024 18:31:45 +0000 (19:31 +0100)]
makefiles: use filter

2 months agomakefiles: fix clean rule for non srcdir builds
Zdenek Kabelac [Tue, 5 Nov 2024 13:39:04 +0000 (14:39 +0100)]
makefiles: fix clean rule for non srcdir builds

With commit acbeaa7a8d86acc0f0e3c04723d066d995f29fe5 we started
to use symlinks to link test suite shell scripts, however
they remained within CLEAN_TARGETS.
So when running 'make clean' within non-srcdir build dir, we
were cleaning actuall shell script in this dir.
So remove list of this script from CLEAN_TARGETS in this case.

2 months agotests: runner better handle help messages
Zdenek Kabelac [Sat, 2 Nov 2024 21:23:42 +0000 (22:23 +0100)]
tests: runner better handle help messages

Postpone check for root uuid so we can print help message.

2 months agotests: check strftime result
Zdenek Kabelac [Sat, 2 Nov 2024 20:54:27 +0000 (21:54 +0100)]
tests: check strftime result

2 months agocov: check result of sync_local_dev_names
Zdenek Kabelac [Sat, 2 Nov 2024 20:57:00 +0000 (21:57 +0100)]
cov: check result of sync_local_dev_names

Although ATM this function always returns 1.
(maybe should be void)

2 months agolvmdiskscan: use while loop
Zdenek Kabelac [Mon, 4 Nov 2024 16:41:02 +0000 (17:41 +0100)]
lvmdiskscan: use while loop

Use more readable while() loop like in other similar instancies.

2 months agopost-release 1526437713
Marian Csontos [Mon, 4 Nov 2024 15:42:12 +0000 (16:42 +0100)]
post-release

2 months agopre-release 2.03.28 1526437872 v2_03_28
Marian Csontos [Mon, 4 Nov 2024 15:42:12 +0000 (16:42 +0100)]
pre-release 2.03.28

2 months agogcc: fix warning about uninitialized use 1523580926
Zdenek Kabelac [Fri, 1 Nov 2024 14:20:50 +0000 (15:20 +0100)]
gcc: fix warning about uninitialized use

get_sizes_lockspace() may not always initilize all passed values
in case the bitfield would not trigger if() path.
So just in case keep the path initilized.

TODO: maybe add INTERNAL_ERROR to get_sizes_lockspace().

2 months agolvmlockd: remove unused vg_sysid 1523487491
David Teigland [Fri, 1 Nov 2024 15:45:34 +0000 (10:45 -0500)]
lvmlockd: remove unused vg_sysid

from structs and info dump.

2 months agotests: skip test on older version 1523253922
Zdenek Kabelac [Fri, 1 Nov 2024 12:27:20 +0000 (13:27 +0100)]
tests: skip test on older version

Prevent crashing kernel on older systems.

2 months agolvmlockd: update prototype for non-lvmlockd build 1523129386
Zdenek Kabelac [Fri, 1 Nov 2024 10:27:02 +0000 (11:27 +0100)]
lvmlockd: update prototype for non-lvmlockd build

Match prototype to last updates of lockd_init_lv_args().

2 months agolvmlockd: optimize new lv lease search 1522704036
David Teigland [Fri, 1 Nov 2024 01:29:00 +0000 (20:29 -0500)]
lvmlockd: optimize new lv lease search

When converting a VG to locktype sanlock, a new
lease is allocated for each existing lv.  Finding
a new lease location involved searching the lvmlock
LV from the start for an unused location, which
would be very slow with many LVs.  Improve this by
starting each search from the last used location.

2 months agolvmlockd: fix vgchange --locktype sanlock 1522553670
David Teigland [Thu, 31 Oct 2024 21:31:35 +0000 (16:31 -0500)]
lvmlockd: fix vgchange --locktype sanlock

Fix regression from commit 7f29afdb06d
"lvmlockd: configurable sanlock lease sizes on 4K disks"

That change failed to recognize that a running lockspace will not
exist in lvmlockd when converting a local VG to a sanlock VG, i.e.
vgchange --locktype sanlock vgname.  When the vgchange attempted
to initialize new lv leases for existing LVs, lvmlockd would
return an error when it found no lockspace.

2 months agoWHATS_NEW: update 1522199585
Zdenek Kabelac [Thu, 31 Oct 2024 16:56:59 +0000 (17:56 +0100)]
WHATS_NEW: update

This page took 0.073377 seconds and 5 git commands to generate.