From e8ef4db8ff91c57d499677873762c3524e786aa5 Mon Sep 17 00:00:00 2001 From: Kairui Song Date: Tue, 5 Jan 2021 00:35:58 +0800 Subject: [PATCH] Fix dump_fs mount point detection and fallback mount Simplify the code and fix mount point detection. The code logic is now much simpler: if $1 is not a mount point, call "mount --target $1" again to try mount it. "mount --target" cmd itself can handle all the /etc/fstab parsing job, so drop the buggy and complex bash code. Signed-off-by: Kairui Song Acked-by: Pingfan Liu --- kdump-lib-initramfs.sh | 25 +++++++------------------ 1 file changed, 7 insertions(+), 18 deletions(-) diff --git a/kdump-lib-initramfs.sh b/kdump-lib-initramfs.sh index a60a52a..cd9d512 100755 --- a/kdump-lib-initramfs.sh +++ b/kdump-lib-initramfs.sh @@ -117,26 +117,15 @@ dump_fs() { local _exitcode local _mp=$1 - local _dev=$(get_mount_info SOURCE target $_mp -f) - local _op=$(get_mount_info OPTIONS target $_mp -f) + ddebug "dump_fs _mp=$_mp" - ddebug "_mp=$_mp _dev=$_dev _op=$_op" - - # If dump path have a corresponding device entry but not mounted, mount it. - if [ -n "$_dev" ] && [ "$_dev" != "rootfs" ]; then - if ! is_mounted "$_mp"; then - dinfo "dump target $_dev is not mounted, trying to mount..." - mkdir -p $_mp - mount -o $_op $_dev $_mp - - if [ $? -ne 0 ]; then - derror "mounting failed (mount point: $_mp, option: $_op)" - return 1 - fi + if ! is_mounted "$_mp"; then + dinfo "dump path \"$_mp\" is not mounted, trying to mount..." + mount --target $_mp + if [ $? -ne 0 ]; then + derror "failed to dump to \"$_mp\", it's not a mount point!" + return 1 fi - else - derror "failed to dump to \"$_mp\", it's not a mount point!" - return 1 fi # Remove -F in makedumpfile case. We don't want a flat format dump here.