Zdenek Kabelac [Mon, 3 Feb 2025 09:45:09 +0000 (10:45 +0100)]
lvmlockd: correct prototype for sanlock-less build
Zdenek Kabelac [Sun, 2 Feb 2025 19:06:10 +0000 (20:06 +0100)]
lvmlockd: compilation fixes
Zdenek Kabelac [Fri, 31 Jan 2025 15:01:09 +0000 (16:01 +0100)]
gcc: std=c11 for test suite as well
Zdenek Kabelac [Fri, 31 Jan 2025 20:50:19 +0000 (21:50 +0100)]
debug: missed stack tracing
Zdenek Kabelac [Sun, 2 Feb 2025 11:11:04 +0000 (12:11 +0100)]
raid: refactor code to _raid_leg_degraded
Move common code into _raid_leg_degraded().
David Teigland [Sat, 1 Feb 2025 00:38:39 +0000 (18:38 -0600)]
lvmlockd: fix free_lv immediately after init_lv
Fix for recent commit "lvmlockd: free resource structs for LVs"
When a vg_write() fails in lvcreate, lvmlockd sees init_lv()
followed by free_lv(). The LV lock is not acquired prior to
free_lv, and no prior resource struct exists. This wasn't being
handled.
David Teigland [Thu, 30 Jan 2025 22:37:21 +0000 (16:37 -0600)]
lvmlockd: log correct name in error path
fix for recent "lvmlockd: free resource structs for LVs"
Zdenek Kabelac [Thu, 30 Jan 2025 18:55:21 +0000 (19:55 +0100)]
vg_read: correct error path for DM cache update
New code for updating DM cache traveled through couple destination
however in this place only 'return_0' is missing unlocking in
error path.
Zdenek Kabelac [Thu, 30 Jan 2025 16:20:40 +0000 (17:20 +0100)]
tests: more info from test
Zdenek Kabelac [Thu, 30 Jan 2025 16:20:05 +0000 (17:20 +0100)]
dev-type: require 4k only for some topology attrs
Previous commit
5f71cebcbecc37b5291018da35b3efe9636bf6c3 was not
correct. 4k requirement cannot be put on attribute_offset - where
it is valid to have this only 512b aligned.
The rule might get more complicated to recognized invalid values.
For this moment however add more easier requirement - we
impose 4K restriction on minimal and optimal io size if they
are bigger then 1 sector (512B).
Zdenek Kabelac [Thu, 23 Jan 2025 14:15:48 +0000 (15:15 +0100)]
WHATS_NEW: update
Zdenek Kabelac [Tue, 28 Jan 2025 15:28:14 +0000 (16:28 +0100)]
cov: annotate
Zdenek Kabelac [Tue, 28 Jan 2025 15:23:00 +0000 (16:23 +0100)]
cov: ensure buffer does not underflow
Add explicit check for having always positive value.
Zdenek Kabelac [Tue, 28 Jan 2025 15:19:11 +0000 (16:19 +0100)]
cov: avoid expression overflow
Keep max memory in MiB (>> 20).
Zdenek Kabelac [Thu, 23 Jan 2025 14:45:32 +0000 (15:45 +0100)]
cov: explicitly ignore return codes
Zdenek Kabelac [Thu, 23 Jan 2025 14:41:13 +0000 (15:41 +0100)]
cov: add validation of FID pointer
Ensure NULL theoretical NULL FID pointer is not
dereferenced.
Zdenek Kabelac [Thu, 23 Jan 2025 17:25:43 +0000 (18:25 +0100)]
cov: limit buffer size for sscanf
Limit sscanf parser buffer width for string.
Zdenek Kabelac [Thu, 23 Jan 2025 15:22:25 +0000 (16:22 +0100)]
cov: use bigger buffer
Since pvck's _check_vgname_start is actually checking
up-to (NAME_LEN + 2) bytes (130),
use at least this size for (MAX_LINE_CHECK + 3).
Zdenek Kabelac [Thu, 23 Jan 2025 15:19:10 +0000 (16:19 +0100)]
cov: limit log levels to 7
lvm2 is using 7 levels for logging.
(Which might be already probably too much...)
Zdenek Kabelac [Tue, 28 Jan 2025 16:12:27 +0000 (17:12 +0100)]
cov: add sscanf width specifiers for lvmlockctl
Zdenek Kabelac [Thu, 23 Jan 2025 15:04:05 +0000 (16:04 +0100)]
cov: add space for string 0
Sscan may automatically add 0 after field width mark,
and since it's not exactlu trivial to do a macro calculation
for PATH_MAX - 1, rather make buffer for sscanf results bigger.
Also use matching FSTYPE_MAX as field width specifier.
Zdenek Kabelac [Thu, 23 Jan 2025 14:50:54 +0000 (15:50 +0100)]
cov: add extra byte for 0
Since we use 'DM_NAME_LEN' size for sscanf - it may need to store
extra string 0, which is added automatically after 'maximum field
width' specifier.
Zdenek Kabelac [Tue, 28 Jan 2025 14:53:09 +0000 (15:53 +0100)]
gcc: updates for use with std=c11
Let gcc -std=c11 pass...
Useful i.e. to get working Coverity scan ATM.
(as gcc15 and stdbool changes makes it problematic.)
Zdenek Kabelac [Mon, 20 Jan 2025 13:08:20 +0000 (14:08 +0100)]
debug: drop double '/' in created pathname
Our cmd->dev_dir already has '/dev/' so do not use '/dev//devname'.
Zdenek Kabelac [Wed, 29 Jan 2025 15:47:58 +0000 (16:47 +0100)]
tests: update topology test
Check lvm2 create usable VG for optimal_io_size
16776704
(which is not divisible by 4KiB).
Zdenek Kabelac [Wed, 29 Jan 2025 14:12:59 +0000 (15:12 +0100)]
dev-types: ignore non-4K divisible topology values
When topology value is bigger then 1 sector (512b)
we require 4K divisibility for them.
Zdenek Kabelac [Tue, 28 Jan 2025 23:00:23 +0000 (00:00 +0100)]
config: check for 0 from read
When the read returns 0, it could mean the file
was trimmed or some other type of problem.
In this case abort the potentially endless loop.
Zdenek Kabelac [Thu, 23 Jan 2025 13:32:39 +0000 (14:32 +0100)]
vg_read: matching missed empty cache
lvm2 is caching DM nodes with the use of DM_LIST_DEVICES ioctl().
And tried to preserve the cached structure for the same list,
however there was 1 case where cache was empty, and new LIST ioctl
returned some elements - if this DM table change has happened
in the moment of 'scanning' and locking - lvm2 has then continued
to use 'invalid' empty cache.
Fix by capturing this missed case and update cache properly.
TODO: we could possibly use plain memcmp() with previous ioctl result.
Zdenek Kabelac [Tue, 28 Jan 2025 11:45:39 +0000 (12:45 +0100)]
vg_read: rescanning DM cache after taking lock
Since we started to use DM cache now also for basic checks
whether the DM devices is present in DM table, this cache
now needs to be actually refreshed when the LOCK is taken.
This hiddenly happend if there was enabled 'scan_lvs' however
still not at the right place.
Move this explicit cache update call right after the moment
vg_read grabs the lock.
TODO: in the optimal case, we should mark the 'cache invalid'
and later refresh this cache, when the first reader appears,
but since this would be large patch, do this little fix step patch
first and improve performance later.
David Teigland [Thu, 30 Jan 2025 00:10:00 +0000 (18:10 -0600)]
lvmlockd: fix thin locking case for cow snapshot
The case of lvcreate creating a cow snapshot of a thin volume was
caught by the sanity check for any missed instances of thin locking.
David Teigland [Thu, 23 Jan 2025 21:57:46 +0000 (15:57 -0600)]
lvmlockd: free resource structs for LVs
Once created, resource structs for LVs were never being freed.
If LVs are activated, then later removed or never used again,
the unused structs waste memory and cause the resource list
to grow.
David Teigland [Tue, 14 Jan 2025 16:29:34 +0000 (10:29 -0600)]
lvmlockd: thin locking improvements
There was a lot of messy and inefficient locking calls sent from
a command to lvmlockd when working with thin volumes, e.g.
- requesting a lock numerous times that was already held
- releasing a lock numerous times that was already unlocked
- repeating lock/unlock/lock/unlock rather than holding the
lock until it was no longer needed
Mistakes in the locking could easily hide among all the noise.
The mess was largely because thin-related commands involve a
lot of internal LV manipulations, and lvmlockd calls were done
at the lower level of LV activation/deactivation. This change
adds locking code that is more specific to the thin command
being run, so it can be more intelligent in acquiring and
releasing locks where needed.
David Teigland [Fri, 17 Jan 2025 20:01:17 +0000 (14:01 -0600)]
lvmlockd: debug log message improvements
David Teigland [Fri, 17 Jan 2025 20:00:34 +0000 (14:00 -0600)]
lvmlockd: reject bogus lease offset values
Marian Csontos [Tue, 14 Jan 2025 19:57:47 +0000 (20:57 +0100)]
doc: Release Notes for 2.03.30
Marian Csontos [Tue, 14 Jan 2025 19:55:33 +0000 (20:55 +0100)]
post-release
Marian Csontos [Tue, 14 Jan 2025 19:55:33 +0000 (20:55 +0100)]
pre-release 2.03.30
Marian Csontos [Fri, 10 Jan 2025 16:19:16 +0000 (17:19 +0100)]
WHATS_NEW: update
Marian Csontos [Wed, 11 Dec 2024 14:57:10 +0000 (15:57 +0100)]
doc: Try to test limit of release notes
This works with newer ikiwiki when building locally, but not on the
gitlab.
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.
Zdenek Kabelac [Wed, 8 Jan 2025 22:05:12 +0000 (23:05 +0100)]
WHATS_NEW: update
Zdenek Kabelac [Tue, 7 Jan 2025 14:37:29 +0000 (15:37 +0100)]
configure: autoreconf
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...
Zdenek Kabelac [Tue, 7 Jan 2025 14:35:42 +0000 (15:35 +0100)]
configure.ac: report 'none' when nvme_wwid is missing
Zdenek Kabelac [Wed, 8 Jan 2025 23:17:54 +0000 (00:17 +0100)]
cov: check syscall
Zdenek Kabelac [Wed, 8 Jan 2025 23:14:33 +0000 (00:14 +0100)]
cov: just be sure nsid is defined
Zdenek Kabelac [Wed, 8 Jan 2025 23:10:40 +0000 (00:10 +0100)]
cov: remove unused header
Zdenek Kabelac [Tue, 7 Jan 2025 14:33:58 +0000 (15:33 +0100)]
cov: some error path updates
Zdenek Kabelac [Thu, 19 Dec 2024 14:43:10 +0000 (15:43 +0100)]
tests: cleanup typo
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>
Zdenek Kabelac [Wed, 8 Jan 2025 21:57:29 +0000 (22:57 +0100)]
tests: test unsupported lvresize of origin vdo lv
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.
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.
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...
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.
Peter Rajnoha [Mon, 6 Jan 2025 14:35:44 +0000 (15:35 +0100)]
WHATS_NEW: update
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.
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.
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).
Zdenek Kabelac [Thu, 19 Dec 2024 13:57:43 +0000 (14:57 +0100)]
WHATS_NEW: update
Zdenek Kabelac [Thu, 19 Dec 2024 13:55:56 +0000 (14:55 +0100)]
make: generate
Zdenek Kabelac [Thu, 19 Dec 2024 13:55:25 +0000 (14:55 +0100)]
args: missed option all for vgdisplay
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 <)
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).
Zdenek Kabelac [Mon, 9 Dec 2024 13:35:16 +0000 (14:35 +0100)]
configure: autoreconf
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
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.
Marian Csontos [Mon, 9 Dec 2024 16:38:52 +0000 (17:38 +0100)]
doc: Fix limit for inlined release notes
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>.
Marian Csontos [Mon, 9 Dec 2024 11:57:57 +0000 (12:57 +0100)]
post-release
Marian Csontos [Mon, 9 Dec 2024 11:57:57 +0000 (12:57 +0100)]
pre-release 2.03.29
Zdenek Kabelac [Fri, 6 Dec 2024 16:21:15 +0000 (17:21 +0100)]
WHATS_NEW: update
Zdenek Kabelac [Fri, 6 Dec 2024 16:22:33 +0000 (17:22 +0100)]
make: generate
Zdenek Kabelac [Fri, 6 Dec 2024 16:02:24 +0000 (17:02 +0100)]
configure: autoreconf
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.
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>
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
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.
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.
David Teigland [Thu, 5 Dec 2024 21:31:31 +0000 (15:31 -0600)]
vgdisplay: 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"
David Teigland [Thu, 5 Dec 2024 19:40:44 +0000 (13:40 -0600)]
lvdisplay: split code for variants using command defs
Marian Csontos [Thu, 5 Dec 2024 13:39:20 +0000 (14:39 +0100)]
doc: Amend 2.03.27 and 28 release notes' date
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.
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.
Zdenek Kabelac [Wed, 4 Dec 2024 15:02:44 +0000 (16:02 +0100)]
debug: missing stack
Marian Csontos [Tue, 3 Dec 2024 12:07:03 +0000 (13:07 +0100)]
doc: Update WHATS_NEW and Release notes
Zdenek Kabelac [Tue, 26 Nov 2024 13:36:01 +0000 (14:36 +0100)]
configure: autoreconf
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.
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.
Marian Csontos [Tue, 26 Nov 2024 09:55:26 +0000 (10:55 +0100)]
spec: Remove [Build]Requires for cluster
David Teigland [Mon, 25 Nov 2024 18:07:30 +0000 (12:07 -0600)]
lvmlockd: allow test mode when dlm is not built
David Teigland [Mon, 25 Nov 2024 16:22:43 +0000 (10:22 -0600)]
man: lvmraid integrity updates
Vojtech Trefny [Thu, 21 Nov 2024 14:14:10 +0000 (15:14 +0100)]
dbus: Add function for running lconvert --repair on RAID LVs
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.
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.
Zdenek Kabelac [Fri, 22 Nov 2024 12:25:37 +0000 (13:25 +0100)]
make: generate
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.
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.
Zdenek Kabelac [Wed, 20 Nov 2024 12:44:35 +0000 (13:44 +0100)]
man: clean
Both branches printed new line.
This page took 0.082903 seconds and 5 git commands to generate.