Hi Tao,
On Sat, 8 Oct 2022 15:41:39 +0800
Tao Liu <ltao(a)redhat.com> wrote:
We need to check if a directory or a device is lvm2 thinp target.
First, we use get_block_dump_target() to convert dump path into
block device, then we check if the device is lvm2 thinp target by
cmd lvs.
is_lvm2_thinp_device is now located in kdump-lib-initramfs.sh, for it
will be used in 2nd kernel. is_lvm2_thinp_dump_target is located in
kdump-lib.sh, for it is only used in 1st kernel, and it has dependencies
which exist in kdump-lib.sh.
Signed-off-by: Tao Liu <ltao(a)redhat.com>
---
kdump-lib-initramfs.sh | 9 +++++++++
kdump-lib.sh | 6 ++++++
2 files changed, 15 insertions(+)
diff --git a/kdump-lib-initramfs.sh b/kdump-lib-initramfs.sh
index e982b14..5cba8ce 100755
--- a/kdump-lib-initramfs.sh
+++ b/kdump-lib-initramfs.sh
@@ -153,3 +153,12 @@ is_fs_dump_target()
{
[ -n "$(kdump_get_conf_val
"ext[234]\|xfs\|btrfs\|minix\|virtiofs")" ]
}
+
+is_lvm2_thinp_device()
+{
+ _device_path=$1
+ _lvm2_thin_device=$(lvm lvs -S 'lv_layout=sparse && lv_layout=thin' \
+ --nosuffix --noheadings -o vg_name,lv_name "$_device_path" 2>/dev/null)
+
+ [ -n "$_lvm2_thin_device" ]
+}
\ No newline at end of file
diff --git a/kdump-lib.sh b/kdump-lib.sh
index 817652d..b4cc146 100755
--- a/kdump-lib.sh
+++ b/kdump-lib.sh
@@ -113,6 +113,12 @@ is_dump_to_rootfs()
[[ $(kdump_get_conf_val 'failure_action\|default') == dump_to_rootfs ]]
}
+is_lvm2_thinp_dump_target()
+{
+ _target=$(get_block_dump_target)
^
local
Other than that the series looks really good.
Thanks
Philipp
+ [ -n "$_target" ] && is_lvm2_thinp_device
"$_target"
+}
+
get_failure_action_target()
{
local _target