1
0
mirror of git://sourceware.org/git/lvm2.git synced 2024-12-21 13:34:40 +03:00
Commit Graph

4341 Commits

Author SHA1 Message Date
Zdenek Kabelac
d19235993e cache: check module in modules builtin
Instead of parsing the whole /proc/kallsyms use faster variant
of using modprobe tool logic.

lvm2 here wants to know whether the particular DM cache policy is
present in the kernel - however since the cache policy does not have
any kernel module parameters and it can be built-in to a kernel
there is no /sys/modules directory in such case and we would need to call
modprobe everytime we want detect such case.

The old solution tried to look for particular kernel symbol
(and like not the right way, as smq_exit might be actually ommitted).

New version checks MODULES_PATH/`uname -r`/modules.builtin for
whether is present cache policy module instead of CPU expensive parsing
of kallsyms.
2024-02-19 14:20:39 +01:00
Zdenek Kabelac
1453ccd5b8 configure: add --with-modulesdir
Add configurable path for directory with kernel modules.
Following patch will use this directory to lookup:
/lib/modules/`uname -r`/modules.builtin
2024-02-19 14:20:39 +01:00
Zdenek Kabelac
c81e204fd0 WHATS_NEW: update 2024-01-10 14:08:19 +01:00
Marian Csontos
22e482d965 post-release 2023-11-21 14:38:53 +01:00
Marian Csontos
d786a8f820 pre-release 2023-11-21 14:37:11 +01:00
Marian Csontos
bbbe02b227 WHATS_NEW: spelling 2023-11-21 14:22:35 +01:00
David Teigland
c44f3a5889 WHATS_NEW: lv_attr for iorig LVs 2023-11-17 13:29:11 -06:00
David Teigland
7ba0d8e07b WHATS_NEW: pvs -A 2023-11-16 08:46:23 -06:00
Marian Csontos
6c6aebba88 WHATS_NEW: update
Remove stray line
2023-11-15 13:36:56 +01:00
Marian Csontos
8f77a14b69 WHATS_NEW: update 2023-11-15 10:37:57 +01:00
Zdenek Kabelac
43020cc474 WHATS_NEW{_DM}: update 2023-10-14 01:04:10 +02:00
Zdenek Kabelac
fc2feabef7 WHATS_NEW: updates 2023-09-19 14:54:51 +02:00
Zdenek Kabelac
8cbfd72f68 WHATS_NEW: updates 2023-09-12 14:44:32 +02:00
Zdenek Kabelac
e9eeb84040 WHATS_NEW: update 2023-09-03 22:51:22 +02:00
Peter Rajnoha
14d0a9eef6
report: support printing full column names in report headings
Reuse existing report/headings config setting to make it possible to
change the type of headings to display:
  0 - no headings
  1 - column name abbreviations (default and original functionality)
  2 - full column names (column names are equal to exact names that
      -o|--options also accepts to set report output)

Also, add '--headings none|abbrev|full|0|1|2' command line option
so we are able to select the heading type for each LVM reporting
command directly.
2023-08-28 15:44:57 +02:00
Zdenek Kabelac
060491c4ee WHATS_NEW: update 2023-08-14 17:02:11 +02:00
Marian Csontos
606ecae5d7 post-release 2023-08-02 14:42:16 +02:00
Marian Csontos
016e469caf pre-release 2023-08-02 14:41:12 +02:00
Marian Csontos
1fe2a74995 WHATS_NEW: update 2023-08-02 14:38:23 +02:00
Peter Rajnoha
0e9fe272bc
report: fix pv_major and pv_minor report field type
We incorrectly marked pv_major and pv_minor fields as being of string
type, even though the values were already correctly handled as integers
internally. This confused -S|--select that tried to compare string
values instead of integers.

Reported here: https://github.com/lvmteam/lvm2/issues/122
2023-07-31 13:44:09 +02:00
Zdenek Kabelac
ace8a2a868 WHATS_NEW: update 2023-07-17 13:47:57 +02:00
Zdenek Kabelac
0670338e0b WHATS_NEW: update 2023-07-15 11:05:35 +02:00
Zdenek Kabelac
6f1318c474 WHATS_NEW: update 2023-07-12 15:18:38 +02:00
Zdenek Kabelac
52f939caa7 WHATS_NEW: updates 2023-07-10 17:13:33 +02:00
Zdenek Kabelac
f35fa8c178 cleanup: typos 2023-07-10 17:13:32 +02:00
Zdenek Kabelac
96123b9059 cleanup: use spelling synchronize
Use single spelling form for synchronize.
2023-07-10 17:13:32 +02:00
Zdenek Kabelac
0a5712ada4 WHATS_NEW: update 2023-06-23 18:08:10 +02:00
Zdenek Kabelac
7ac5dbfd09 WHATS_NEW: update 2023-06-09 18:01:35 +02:00
Peter Rajnoha
e2ecc6c763
reporter: restore report type to initial value after processing report_for_selection
If we are executing 'report_for_selection' to do an internal report
just for the selection itself (not for display), we can call it more
than once. In that case, we are reusing the same selection handle
(e.g. inside 'process_each_lv_in_vg').

The selection handle has 'report_type' field which is a union of all
report types needed for the report based on selection fields we actually
use.

The 'report_type' is further clarified based on checks and rules inside
'_get_final_report_type' which 'report_for_selection' calls. Then, this
final report type unambiguously identifies proper branch to take in
'report_all_in_{pv,vg,lv}' that is called next.

If the 'report_for_selection' is called more than once with the same
selection handle, we need to make sure that we always restore the report
type to its initial value, so all the rules inside 'report_for_selection'
are applied correctly next time.

This patch fixes the missing restoration of the 'report_type' value in
'selection_handle' that is reused for recurring 'report_for_selection'
calls.

An example scenario where this failed was with selecting an LV for
removal with "lvremove --select" while using a field in the selection
that required extra DM info or DM status call for the LV (that is,
"Logical Volume Device Info Fields" and "Logical Volume Device Status Fields"
as visible in 'lvs -S help').
2023-05-31 09:38:11 +02:00
Marian Csontos
b030ef31de post-release 2023-04-21 10:36:06 +02:00
Marian Csontos
54efdab230 pre-release 2023-04-21 10:35:10 +02:00
Zdenek Kabelac
b1789b84c3 WHATS_NEW: update 2023-04-06 13:45:42 +02:00
Marian Csontos
238e377777 post-release 2023-03-21 13:36:36 +01:00
Marian Csontos
3e0ee8dbad pre-release 2023-03-21 13:35:48 +01:00
Peter Rajnoha
cd14d3fcc0
toollib: fix segfault if using -S|--select with log/report_command_log=1 setting
When we are using -S|--select for non-reporting tools while using command log
reporting (log/report_command_log=1 setting), we need to create an internal
processing handle to handle the selection itself. In this case, the internal
processing handle to execute the selection (to process the -S|--select) has
a parent handle (that is processing the actual non-reporting command).

When this parent handle exists, we can't destroy the command log report
in destroy_processing_handle as there's still the parent processing to
finish. The parent processing may still generate logs which need to be
reported in the command log report. If the command log report was
destroyed prematurely together with destroying the internal processing
handle for -S|--select, then any subsequent log request from processing
the actual command (and hence an attermpt to access the command log report)
ended up with a segfault.

See also: https://bugzilla.redhat.com/show_bug.cgi?id=2175220
2023-03-07 15:29:54 +01:00
Zdenek Kabelac
551d27a327 WHATS_NEW: updates 2023-02-23 16:46:35 +01:00
Marian Csontos
0f6da9926d post-release 2023-02-21 15:36:24 +01:00
Marian Csontos
f7dd2562c5 pre-release 2023-02-21 15:33:32 +01:00
Zdenek Kabelac
d1bfa400a1 WHATS_NEW: update 2023-02-10 20:54:05 +01:00
Peter Rajnoha
e7c8a82506
udev: don't reset SYSTEMD_READY in udev for PVs on MD and loop
Since 67722b3123, we have a new mechanism
to run the autoactivation from udev. With this change, we also replaced
the way the LVM autoactivation service is instantiatiated - instead of
setting the SYSTEM_WANTS udev variable (which systemd read and then
instantiated the service), we're now directly instantiating the
transient 'lvm-activate-<vgname>' service by calling systemd-run.

As such, we don't need to bother with setting the SYSTEMD_READY variable
for foreign devices anymore (in this case, MD and loop devices on top of
which there's a PV).

Before, we set the SYSTEMD_READY variable to make sure that the SYSTEMD_WANTS
is applied correctly - the service instantiation was edge-triggered by
flipping the SYSTEMD_READY from 0 to 1 and at the same time having the
SYSTEMD_WANTS variable set to the service name to instantiate. We're
using systemd-run now so this condition does not apply anymore.

Also, it was not completely correct to set SYSTEMD_READY for foreign
devices because there might be cases where this could cause issues,
see also https://github.com/lvmteam/lvm2/issues/94.
2023-02-01 14:46:52 +01:00
Zdenek Kabelac
c8a5948a71 device_mapper: reactivate siblings for snapshot
When activating origin and its thick snapshots, ensure the
origin's LV udev processing is finished first and after this
reactivate its snapshot so the udev can scan them afterwards.

This should fix the problems for users using UUID of such device
in their fstab and occasionaly mounted snapshot instead of origin LV.
2023-02-01 11:47:47 +01:00
Zdenek Kabelac
2451bc568f vdo: fix and enhance vdo constain checking
Enhance checking vdo constains so it also handles changes of active VDO LVs
where only added difference is considered now.

For this also the reported informational message about used memory
was improved to only list consuming RAM blocks.
2023-01-16 12:37:40 +01:00
lilinjie
bb34ebd4e4 fix typo
Signed-off-by: lilinjie <lilinjie@uniontech.com>
(cherry picked from commit 81b1f5bc3bac0e2e9099b67162da7d1a4995c5f4)
2023-01-11 13:52:12 +01:00
Marian Csontos
118145b072 post-release 2023-01-03 16:02:07 +01:00
Marian Csontos
2abb029f2a pre-release 2022-12-22 16:07:35 +01:00
Marian Csontos
2772d29917 WHATS_NEW: update 2022-12-22 16:06:04 +01:00
Marian Csontos
c77384785d post-release 2022-11-10 14:21:57 +01:00
Marian Csontos
f8127c45c5 pre-release 2022-11-10 14:11:32 +01:00
Peter Rajnoha
908555459f toollib: do not process just created historical LV
When executing process_each_lv_in_vg, we process live LVs first and
after that, we process any historical LVs. In case we have just removed
an LV, which also means we have just made it "historical" and so it
appears as fresh item in vg->historical_lvs list, we have to skip it
when we get to processing historical LVs inside the same process_each_lv_in_vg
call.

The simplest approach here, without introducing another LV list, is to
simply mark such historical LVs as "fresh" directly in struct
historical_logical_volume when we have just removed the original LV
and created the historical LV for it. Then, we just need to check the
flag when processing historical LVs and skip it if it is "fresh".

When we read historical LVs out of metadata, they are marked as
"not fresh" and so they can be processed as usual.

This was mainly an issue in conjuction with -S|--select use:

	#  lvmconfig --type diff
	metadata {
		record_lvs_history=1
	}

(In this example, a thin pool with lvol1 thin LV and lvol2 and lvol3 snapshots.)

	#  lvs -H vg -o name,pool_lv,full_ancestors,full_descendants
	  LV    Pool FAncestors  FDescendants
	  lvol1 pool             lvol2,lvol3
	  lvol2 pool lvol1       lvol3
	  lvol3 pool lvol2,lvol1
	  pool

	#  lvremove -S 'name=lvol2'
	  Logical volume "lvol2" successfully removed.
	  Historical logical volume "lvol2" successfully removed.

...here, the historical LV lvol2 should not have been removed because
we have just removed its original non-historical lvol2 and the fresh
historical lvol2 must not be included in the same processing spree.
2022-10-12 15:14:59 +02:00
Peter Rajnoha
973d0bd5b7 report: fix lv_active column type from STR to BIN
Fix lv_active to be of BIN type instead of STR. This allows lv_active to
follow the report/binary_values_as_numeric setting as well as --binary
cmd line switch. Also, it makes it possible to use -S|--select with
either textual or numeric representation of the value, like 'lvs -S
active=active' but also 'lvs -S active=1'.
2022-09-06 15:49:27 +02:00