summarylogtreecommitdiffstats
path: root/os-prober-btrfs-always-detect-default.patch
diff options
context:
space:
mode:
Diffstat (limited to 'os-prober-btrfs-always-detect-default.patch')
-rw-r--r--os-prober-btrfs-always-detect-default.patch132
1 files changed, 0 insertions, 132 deletions
diff --git a/os-prober-btrfs-always-detect-default.patch b/os-prober-btrfs-always-detect-default.patch
deleted file mode 100644
index c96495484ed..00000000000
--- a/os-prober-btrfs-always-detect-default.patch
+++ /dev/null
@@ -1,132 +0,0 @@
-Index: os-prober/linux-boot-prober
-===================================================================
---- os-prober.orig/linux-boot-prober
-+++ os-prober/linux-boot-prober
-@@ -67,7 +67,12 @@ if [ "$type" = btrfs ]; then
- fi
- if [ -z "$mpoint" ]; then
- # mount the btrfs root
-- if ! mount -o subvol=$subvol -t btrfs -U $UUID "$tmpmnt" 2>/dev/null; then
-+
-+ if [ -n "$subvol" ]; then
-+ opts="-o subvol=$subvol"
-+ fi
-+
-+ if ! mount $opts -t btrfs -U $UUID "$tmpmnt" 2>/dev/null; then
- warn "error mounting btrfs subvol=$subvol UUID=$UUID"
- umount "$tmpmnt/boot" 2>/dev/null
- umount "$tmpmnt" 2>/dev/null
-Index: os-prober/os-probes/common/50mounted-tests
-===================================================================
---- os-prober.orig/os-probes/common/50mounted-tests
-+++ os-prober/os-probes/common/50mounted-tests
-@@ -114,6 +114,47 @@ if [ "$types" != "btrfs" ]; then
- exit 1
- fi
-
-+probe_subvol ()
-+{
-+ local subvol=$1
-+ local partition=$2
-+ local UUID=$3
-+ local tmpmnt=$4
-+
-+ mounted=
-+ mpoint="$(grep btrfs /proc/self/mountinfo | grep "$partition " | grep "/$subvol " | cut -d ' ' -f 5)"
-+ ret=1
-+
-+ if [ -n "$subvol" ]; then
-+ opts="-o subvol=$subvol"
-+ fi
-+
-+ if [ -n "$mpoint" ]; then
-+ if [ "x$mpoint" = "x/" ]; then
-+ continue # this is the root for the running system
-+ fi
-+ mounted=1
-+ else
-+ # again, do not mount btrfs ro
-+ mount -t btrfs $opts -U "$UUID" "$tmpmnt"
-+ mpoint="$tmpmnt"
-+ fi
-+ test="/usr/lib/os-probes/mounted/90linux-distro"
-+ if [ -f "$test" ] && [ -x "$test" ]; then
-+ debug "running subtest $test"
-+ if "$test" "$partition" "$mpoint" btrfs "UUID=$UUID" "subvol=$subvol"; then
-+ debug "os found by subtest $test on subvol $subvol"
-+ ret=0
-+ fi
-+ fi
-+ if [ -z "$mounted" ]; then
-+ if ! umount "$tmpmnt"; then
-+ warn "failed to umount $tmpmnt"
-+ fi
-+ fi
-+ return $ret
-+}
-+
- # all btrfs processing here. Handle both unmounted and
- # mounted subvolumes.
- if [ "$types" = btrfs ]; then
-@@ -136,45 +177,23 @@ if [ "$types" = btrfs ]; then
- rmdir "$tmpmnt" || true
- exit 1
- fi
-- if [ -z "$subvols" ]; then
-- debug "no subvols found on btrfs volume $UUID"
-- exit 1
-- fi
-+
- found=
-- for subvol in $subvols; do
-- debug "begin btrfs processing for $UUID subvol=$subvol"
-- if [ "$subvol" != "$defaultvol" ]; then
-- if echo "$rosubvols" | grep -q -x "$subvol"; then
-- continue
-- fi
-- if echo "$sssubvols" | grep -q -x "$subvol"; then
-- continue
-- fi
-- fi
-- mounted=
-- mpoint="$(grep btrfs /proc/self/mountinfo | grep "$partition " | grep "/$subvol " | cut -d ' ' -f 5)"
-- if [ -n "$mpoint" ]; then
-- if [ "x$mpoint" = "x/" ]; then
-- continue # this is the root for the running system
-- fi
-- mounted=1
-- else
-- # again, do not mount btrfs ro
-- mount -t btrfs -o subvol="$subvol" -U "$UUID" "$tmpmnt"
-- mpoint="$tmpmnt"
-- fi
-- test="/usr/lib/os-probes/mounted/90linux-distro"
-- if [ -f "$test" ] && [ -x "$test" ]; then
-- debug "running subtest $test"
-- if "$test" "$partition" "$mpoint" btrfs "UUID=$UUID" "subvol=$subvol"; then
-- debug "os found by subtest $test on subvol $subvol"
-- found=1
-- fi
-+ # Always probe subvol or root set as default
-+ if probe_subvol "$defaultvol" "$partition" "$UUID" "$tmpmnt"; then
-+ found=1
-+ fi
-+
-+ # Probe any other OS on subvol
-+ for subvol in $subvols; do
-+ if echo "$rosubvols" | grep -q -x "$subvol" ||
-+ echo "$sssubvols" | grep -q -x "$subvol" ||
-+ echo "$defaultvol" | grep -q -x "$subvol"; then
-+ continue
- fi
-- if [ -z "$mounted" ]; then
-- if ! umount "$tmpmnt"; then
-- warn "failed to umount $tmpmnt"
-- fi
-+ debug "begin btrfs processing for $UUID subvol=$subvol"
-+ if probe_subvol "$subvol" "$partition" "$UUID" "$tmpmnt"; then
-+ found=1
- fi
- done
- rmdir "$tmpmnt" || true
-