SVN: geninitrd/trunk/functions

glen glen at pld-linux.org
Tue Oct 23 21:30:14 CEST 2007


Author: glen
Date: Tue Oct 23 21:30:13 2007
New Revision: 8843

Modified:
   geninitrd/trunk/functions
Log:
- we can grab the proper lvm path from lvdisplay output

Modified: geninitrd/trunk/functions
==============================================================================
--- geninitrd/trunk/functions	(original)
+++ geninitrd/trunk/functions	Tue Oct 23 21:30:13 2007
@@ -77,25 +77,9 @@
 # which they got from blkid program fs was specifed as UUID= in fstab
 dm_lvm2_name() {
 	local node="$1"
-
-	# redirect output to tmpfile so we won't get subshell
-	local tmp ret
-	tmp=$(mktemp) || return 1
-
-	/sbin/lvdisplay -c 2>/dev/null | awk -F: '{print $1}' > $tmp
-	while read dev; do
-		count=$(ls -Ll $dev $node | awk '{print $5, $6}' | sort -u | wc -l)
-		if [ "$count" = 1 ]; then
-			ret="$dev"
-			break
-		fi
-	done < $tmp
-	rm -f $tmp
-
-	if [ -z "$ret" ]; then
-		ret=$node
-	fi
-	echo "$ret"
+	local dm_minor=${node#/dev/dm-}
+	local lvm_path=$(/sbin/lvdisplay -c 2>/dev/null | awk -F: -vn=$dm_minor '{node=$1; major=$12; minor=$13; if (n == minor) print node}')
+	echo $lvm_path
 }
 
 # try to resolve /dev/dm-0 to item from /dev/mapper dir


More information about the pld-cvs-commit mailing list