]> git.ipfire.org Git - thirdparty/dracut.git/commitdiff
dracut-functions:find_block_device() workaround for btrfs
authorHarald Hoyer <harald@redhat.com>
Fri, 29 Oct 2010 10:34:27 +0000 (12:34 +0200)
committerHarald Hoyer <harald@redhat.com>
Fri, 29 Oct 2010 10:34:27 +0000 (12:34 +0200)
/proc/self/mountinfo contains the btrfs virtual device major minor.
Determine the real major minor with the device.

dracut-functions

index 7c41fe75817c4a3d3e4ccda5348edc8bac792442..2232dc9a8b8866a8620967a04da84919eef59c60 100755 (executable)
@@ -130,10 +130,17 @@ get_fs_uuid() (
 find_block_device() {
     local x mpt majmin dev fs misc maj min
     if [[ $use_fstab != yes ]]; then    
-        while read x x majmin x mpt x x fs misc; do
+        while read x x majmin x mpt x x fs dev misc; do
             [[ $fs = nfs ]] && { echo $dev; return 0;}
             [[ $fs = nfs3 ]] && { echo $dev; return 0;}
             [[ $fs = nfs4 ]] && { echo $dev; return 0;}
+            [[ $fs = btrfs ]] && {
+                ls -nLl "$dev" | { 
+                    read x x x x maj min x;
+                    maj=${maj//,/}; 
+                    echo $maj:$min; 
+                } && return 0
+            }
             if [[ $mpt = $1 ]] && [[ ${majmin#0:} = $majmin ]]; then
                 echo $majmin; 
                 return 0 # we have a winner!