From: Harald Hoyer Date: Fri, 29 Oct 2010 10:34:27 +0000 (+0200) Subject: dracut-functions:find_block_device() workaround for btrfs X-Git-Tag: 008~85 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=51c977d1ff665c16a747d54f54316886db82d6ad;p=thirdparty%2Fdracut.git dracut-functions:find_block_device() workaround for btrfs /proc/self/mountinfo contains the btrfs virtual device major minor. Determine the real major minor with the device. --- diff --git a/dracut-functions b/dracut-functions index 7c41fe758..2232dc9a8 100755 --- a/dracut-functions +++ b/dracut-functions @@ -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!