[kexec-tools/f16] mkdumprd: handle lvm in pre-pivot hook

Cong Wang wangcong at fedoraproject.org
Tue Aug 2 06:01:20 UTC 2011


commit 9ea38012147a8ec9894a61c23f0d68405f442e70
Author: Amerigo Wang <amwang at redhat.com>
Date:   Tue Aug 2 14:00:50 2011 +0800

    mkdumprd: handle lvm in pre-pivot hook

 kdump_dracut_modules/99kdumpbase/kdump.sh        |    4 +-
 kdump_dracut_modules/99kdumpbase/module-setup.sh |   26 +++++++++++++++------
 kexec-tools.spec                                 |    5 +++-
 sources                                          |    2 +-
 4 files changed, 25 insertions(+), 12 deletions(-)
---
diff --git a/kdump_dracut_modules/99kdumpbase/kdump.sh b/kdump_dracut_modules/99kdumpbase/kdump.sh
index 75391da..ba2337c 100755
--- a/kdump_dracut_modules/99kdumpbase/kdump.sh
+++ b/kdump_dracut_modules/99kdumpbase/kdump.sh
@@ -31,7 +31,7 @@ add_to_fstab()
     while read dev mp fs opts rest; do
         if [ "$dev" = "$1" ]; then
             _mp=$NEWROOT$mp
-            echo "$dev $NEWROOT$mp $fs ${opts},ro $rest"
+            echo "$dev $NEWROOT$mp $fs ${opts},rw $rest"
             break
         fi
     done < "$NEWROOT/etc/fstab" >> /etc/fstab
@@ -60,7 +60,7 @@ dump_localfs()
     mount $_mp || return 1
     mkdir -p $_mp/$KDUMP_PATH/$DATEDIR
     $CORE_COLLECTOR /proc/vmcore $_mp/$KDUMP_PATH/$DATEDIR/vmcore || return 1
-    umount /mnt || return 1
+    umount $_mp || return 1
     return 0
 }
 
diff --git a/kdump_dracut_modules/99kdumpbase/module-setup.sh b/kdump_dracut_modules/99kdumpbase/module-setup.sh
index 4836edf..eb4fc52 100755
--- a/kdump_dracut_modules/99kdumpbase/module-setup.sh
+++ b/kdump_dracut_modules/99kdumpbase/module-setup.sh
@@ -52,8 +52,7 @@ pull_dracut_modules() {
     unset MAJOR MINOR
 }
 
-to_udev_name()
-{
+to_udev_name() {
     local dev="$1"
 
     case "$dev" in
@@ -67,6 +66,15 @@ to_udev_name()
     echo ${dev#/dev/}
 }
 
+add_lvm_code() {
+    local dev="/dev/$(to_udev_name $1)"
+    local lv
+    printf '#!/bin/sh\n' > $moddir/kdump-prepare.sh
+    printf "lvm lvchange -ay --sysinit ">> $moddir/kdump-prepare.sh
+    lv=$(lvm lvdisplay $dev | awk '/LV Name/ {print $3}')
+    echo ${lv#/dev/} >> $moddir/kdump-prepare.sh
+}
+
 udevmatch() {
     case "$1" in
     UUID=????????-????-????-????-????????????|LABEL=*)
@@ -80,9 +88,8 @@ udevmatch() {
     printf ', SYMLINK+="'$(to_udev_name $1)'"\n' 
 }
 
-add_udev_rules()
-{
-    udevmatch $1 >> $moddir/99-localfs.rules
+add_udev_rules() {
+    udevmatch $1 >> $moddir/90-localfs.rules
 }
 
 depends() {
@@ -100,12 +107,14 @@ depends() {
 }
 
 install() {
-    echo -n "" > "$moddir/99-localfs.rules"
+    echo -n "" > $moddir/90-localfs.rules
+    chmod +x $moddir/kdump-prepare.sh
     while read config_opt config_val;
     do
         case "$config_opt" in
         ext[234]|xfs|btrfs|minix|raw)
             add_udev_rules $config_val
+            add_lvm_code $config_val 
             ;;
         esac
     done < /etc/kdump.conf
@@ -114,7 +123,8 @@ install() {
     inst "/bin/sync" "/bin/sync"
     inst "/sbin/makedumpfile" "/sbin/makedumpfile"
     inst "/etc/kdump.conf" "/etc/kdump.conf"
-    inst_hook pre-pivot 01 "$moddir/kdump.sh"
-    inst_rules "$moddir/99-localfs.rules"
+    inst_hook pre-pivot 01 "$moddir/kdump-prepare.sh"
+    inst_hook pre-pivot 02 "$moddir/kdump.sh"
+    inst_rules "$moddir/90-localfs.rules"
 }
 
diff --git a/kexec-tools.spec b/kexec-tools.spec
index 0985569..058d198 100644
--- a/kexec-tools.spec
+++ b/kexec-tools.spec
@@ -1,6 +1,6 @@
 Name: kexec-tools
 Version: 2.0.2
-Release: 21%{?dist}
+Release: 22%{?dist}
 License: GPLv2
 Group: Applications/System
 Summary: The kexec/kdump userspace component.
@@ -280,6 +280,9 @@ done
 
 
 %changelog
+* Tue Aug 2 2011 Cong Wang <xiyou.wangcong at gmail.com> - 2.0.2-22
+- Handle lvm in pre-pivot hook.
+
 * Tue Aug 2 2011 Cong Wang <xiyou.wangcong at gmail.com> - 2.0.2-21
 - Fix udev rules in module-setup.sh
 
diff --git a/sources b/sources
index f4684dd..c5994ed 100644
--- a/sources
+++ b/sources
@@ -2,4 +2,4 @@ d9f2ecd3c3307905f24130a25816e6cc  kexec-tools-2.0.0.tar.bz2
 3e802d638dce0080b910f15908c04a24  kexec-tools-po.tar.gz
 e3a813bd6d7dace903a05c1296e20d57  makedumpfile-1.3.5.tar.gz
 8e359dd03731b93a2082bd37cc2a4a4c  kexec-tools-2.0.2.tar.bz2
-e781db40f39c3f27c6003d9c5794b862  dracut-files.tbz2
+ed5b216591c1913eeac70449ca810cf7  dracut-files.tbz2


More information about the scm-commits mailing list