Blame SOURCES/0015-Properly-handle-extended-dos-partitions-1322957.patch

2e96e6
From 32c966170f349eb5926b4566360f28dc89a138c2 Mon Sep 17 00:00:00 2001
2e96e6
From: Andreas Henriksson <andreas@fatal.se>
2e96e6
Date: Thu, 8 Oct 2015 02:29:46 +0200
2e96e6
Subject: [PATCH 15/18] Properly handle extended dos partitions (#1322957)
2e96e6
2e96e6
Changes os-prober behavior to skip extended dos partitions by default.
2e96e6
2e96e6
------------------------------------------------------------------------
2e96e6
Adjust extended dos support for blkid/util-linux 2.24+ (Closes: #735169).
2e96e6
2e96e6
Signed-off-by: Cyril Brulebois <kibi@debian.org>
2e96e6
------------------------------------------------------------------------
2e96e6
(cherry picked from commit 6d93bc444b28a038080aef67fd3b670720315bf9)
2e96e6
2e96e6
Resolves: rhbz#1322957
2e96e6
---
2e96e6
 common.sh                                | 23 +++++++++++++++++++++++
2e96e6
 linux-boot-probes/common/50mounted-tests |  4 ++++
2e96e6
 2 files changed, 27 insertions(+)
2e96e6
2e96e6
diff --git a/common.sh b/common.sh
2e96e6
index 7fcae5a..4cd300d 100644
2e96e6
--- a/common.sh
2e96e6
+++ b/common.sh
2e96e6
@@ -126,6 +126,29 @@ fs_type () {
2e96e6
 	fi
2e96e6
 }
2e96e6
 
2e96e6
+is_dos_extended_partition() {
2e96e6
+	if type blkid >/dev/null 2>&1; then
2e96e6
+		local output
2e96e6
+
2e96e6
+		output="$(blkid -o export $1)"
2e96e6
+
2e96e6
+		# old blkid (util-linux << 2.24) errors out on extended p.
2e96e6
+		if [ "$?" = "2" ]; then
2e96e6
+			return 0
2e96e6
+		fi
2e96e6
+
2e96e6
+		# dos partition type and no filesystem type?...
2e96e6
+		if echo $output | grep -q ' PTTYPE=dos ' &&
2e96e6
+				! echo $output | grep -q ' TYPE='; then
2e96e6
+			return 0
2e96e6
+		else
2e96e6
+			return 1
2e96e6
+		fi
2e96e6
+	fi
2e96e6
+
2e96e6
+	return 1
2e96e6
+}
2e96e6
+
2e96e6
 parse_proc_mounts () {
2e96e6
 	while read -r line; do
2e96e6
 		set -f
2e96e6
diff --git a/linux-boot-probes/common/50mounted-tests b/linux-boot-probes/common/50mounted-tests
2e96e6
index 41e26e6..91b6dd9 100755
2e96e6
--- a/linux-boot-probes/common/50mounted-tests
2e96e6
+++ b/linux-boot-probes/common/50mounted-tests
2e96e6
@@ -20,6 +20,10 @@ elif [ "$types" = ntfs ]; then
2e96e6
 		types='ntfs-3g ntfs'
2e96e6
 	fi
2e96e6
 elif [ -z "$types" ]; then
2e96e6
+	if is_dos_extended_partition "$partition"; then
2e96e6
+		debug "$1 looks like an extended dos partition; skipping"
2e96e6
+		exit 0
2e96e6
+	fi
2e96e6
 	if type cryptsetup >/dev/null 2>&1 && \
2e96e6
 	   cryptsetup luksDump "$partition" >/dev/null 2>&1; then
2e96e6
 		debug "$1 is a LUKS partition; skipping"
2e96e6
-- 
2e96e6
2.5.5
2e96e6