diff --git a/os-prober-skip-part-on-multipath.patch b/os-prober-skip-part-on-multipath.patch new file mode 100644 index 0000000..122df4e --- /dev/null +++ b/os-prober-skip-part-on-multipath.patch @@ -0,0 +1,43 @@ +Index: os-prober-1.61/os-prober +=================================================================== +--- os-prober-1.61.orig/os-prober ++++ os-prober-1.61/os-prober +@@ -24,6 +24,29 @@ on_sataraid () { + return 1 + } + ++mp_disks="UNDEF" ++on_multipath () { ++ type multipath >/dev/null 2>&1 || return 1 ++ local parent="${1%/*}" ++ local device="${parent##*/}" ++ ++ if [ "$mp_disks" = "UNDEF" ]; then ++ mp_disks=`multipath -d -l | sed -n -e 's/^.\+[0-9]\+:[0-9]\+:[0-9]\+:[0-9]\+ \([^ ]\+\) .*/\1/p'` ++ fi ++ ++ if [ -z "$mp_disks" ]; then ++ return 1 ++ fi ++ ++ for i in $mp_disks; do ++ if [ "$device" = "$i" ]; then ++ debug "$1: part of multipath disk $i" ++ return 0 ++ fi ++ done ++ return 1 ++} ++ + partitions () { + # Exclude partitions that have whole_disk sysfs attribute set. + if [ -d /sys/block ]; then +@@ -31,7 +54,7 @@ partitions () { + # Serial ATA RAID disk. + for part in /sys/block/*/*[0-9]; do + if [ -f "$part/start" ] && \ +- [ ! -f "$part/whole_disk" ] && ! on_sataraid $part; then ++ [ ! -f "$part/whole_disk" ] && ! on_sataraid $part && ! on_multipath $part; then + name="$(echo "${part##*/}" | sed 's,[!.],/,g')" + if [ -e "/dev/$name" ]; then + echo "/dev/$name" diff --git a/os-prober.changes b/os-prober.changes index acd1cea..0840978 100644 --- a/os-prober.changes +++ b/os-prober.changes @@ -1,3 +1,10 @@ +------------------------------------------------------------------- +Thu May 29 08:26:40 UTC 2014 - mchang@suse.com + +- add os-prober-skip-part-on-multipath.patch + * fix os-prober creates many unusuable entries on multipath disk + (bnc#875327) + ------------------------------------------------------------------- Wed Jan 15 15:59:02 UTC 2014 - arvidjaar@gmail.com diff --git a/os-prober.spec b/os-prober.spec index 8c7d653..5cfa374 100644 --- a/os-prober.spec +++ b/os-prober.spec @@ -51,6 +51,8 @@ Patch11: os-prober-accept-ESP-on-IMSM.patch Patch12: os-prober-dont-load-all-fs-module-and-dont-test-mount.patch # PATCH-FIX-OPENSUSE: fix os-prober entries for distro on btrfs root-fs not created (bnc#846003) Patch13: os-prober-fix-btrfs-subvol-mounted-tests.patch +# PATCH-FIX-SLE: fix os-prober creates many unusuable entries on multipath disk (bnc#875327) +Patch14: os-prober-skip-part-on-multipath.patch Requires: /bin/grep Requires: /bin/sed @@ -82,6 +84,7 @@ cp %SOURCE1 . %patch11 -p1 %patch12 -p1 %patch13 -p1 +%patch14 -p1 %build make %{?_smp_mflags} CC="%__cc" CFLAGS="%{optflags}"