kdump-lib-initramfs: Improve mount point retrieval logic

Resolves: RHEL-35885
Upstream: https://github.com/rhkdump/kdump-utils/
Conflict: none

commit 27a9d1dc85283239ee0b0b29ce5a00597d3f965f
Author: Lichen Liu <lichliu@redhat.com>
Date:   Sun Sep 29 16:02:04 2024 +0800

    kdump-lib-initramfs: Improve mount point retrieval logic

    We use findmnt to find the real mount point by mount source, however,
    when there is a bind mount target, findmnt will give more than one
    results and what we actually want is the one without fsroot.

    Will fallback to previous method if the $_mntpoint is empty.

    Signed-off-by: Lichen Liu <lichliu@redhat.com>

Signed-off-by: Lichen Liu <lichliu@redhat.com>
This commit is contained in:
Lichen Liu 2024-12-05 10:23:03 +08:00
parent 71923b23d6
commit 4a3b7d1337
No known key found for this signature in database
GPG Key ID: 2ED8215EF57B3D6C
2 changed files with 9 additions and 3 deletions

View File

@ -102,8 +102,14 @@ get_fs_type_from_target()
get_mntpoint_from_target()
{
# --source is applied to ensure non-bind mount is returned
get_mount_info TARGET source "$1" -f
local _mntpoint
# get the first TARGET when SOURCE doesn't end with ].
# In most cases, a SOURCE ends with ] when fsroot or subvol exists.
_mntpoint=$(get_mount_info TARGET,SOURCE source "$1" | grep -v "\]$" | awk 'NR==1 { print $1 }')
# fallback to the old way when _mntpoint is empty.
[[ -n "$_mntpoint" ]] || _mntpoint=$(get_mount_info TARGET source "$1" -f )
echo $_mntpoint
}
is_ssh_dump_target()

View File

@ -213,7 +213,7 @@ get_bind_mount_source()
_fsroot=${_src#${_src_nofsroot}[}
_fsroot=${_fsroot%]}
_mnt=$(get_mount_info TARGET source "$_src_nofsroot" -f)
_mnt=$(get_mntpoint_from_target "$_src_nofsroot")
# for btrfs, _fsroot will also contain the subvol value as well, strip it
if [[ $_fstype == btrfs ]]; then