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 kasong@redhat.com --- kdump-lib-initramfs.sh | 27 ++++++++------------------- 1 file changed, 8 insertions(+), 19 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 "_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 + ddebug "dump_fs _mp=$_mp" + + 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.
On 1/5/21 12:35 AM, Kairui Song wrote:
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 kasong@redhat.com
kdump-lib-initramfs.sh | 27 ++++++++------------------- 1 file changed, 8 insertions(+), 19 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 "_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"; thendinfo "dump target $_dev is not mounted, trying to mount..."mkdir -p $_mpmount -o $_op $_dev $_mpif [ $? -ne 0 ]; thenderror "mounting failed (mount point: $_mp, option: $_op)"return 1fi
- ddebug "dump_fs _mp=$_mp"
- if ! is_mounted "$_mp"; then
dinfo "dump path \"$_mp\" is not mounted, trying to mount..."mount --target $_mpif [ $? -ne 0 ]; thenderror "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.
Acked-by: Pingfan Liu piliu@redhat.com