lib: Ensure we don't find bind mounts for device target
Resolves: RHEL-35885 commit 9252d6b1b492016aa11a73340f286822e6d545f2 Author: Colin Walters <walters@verbum.org> Date: Fri Jul 19 11:44:09 2024 -0400 lib: Ensure we don't find bind mounts for device target There's comment here that `--source` somehow avoids bind mounts, but that appears not to be the case in my testing. I think we just happened to be lucky before now with the `--first` picking the value we wanted. Instead of using `--first` and hoping for the best, parse the mounts and skip ones which are bind mounts explicitly. Signed-off-by: Colin Walters <walters@verbum.org> Signed-off-by: Lichen Liu <lichliu@redhat.com>
This commit is contained in:
parent
be56205d06
commit
099aead590
@ -101,8 +101,15 @@ 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 SOURCE TARGET
|
||||
findmnt -k --pairs -o SOURCE,TARGET "$1" | while read line; do
|
||||
eval "$line"
|
||||
# omit sources that are bind mounts i.e. they contain a [/path/to/subpath].
|
||||
if [[ ! "$SOURCE" =~ \[ ]]; then
|
||||
echo $TARGET
|
||||
break
|
||||
fi
|
||||
done
|
||||
}
|
||||
|
||||
is_ssh_dump_target()
|
||||
|
@ -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
|
||||
|
Loading…
Reference in New Issue
Block a user