summaryrefslogtreecommitdiff
blob: eec840ee10fe6b754b1c9312aff737749c3813e9 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
--- usr/sbin/ofpath.bak	2012-05-09 12:24:51.709911981 -0400
+++ usr/sbin/ofpath	2012-05-09 12:32:19.661560544 -0400
@@ -85,11 +85,20 @@
 [ "$DEBUG" = 1 ] && echo "Devpath is: $DEVPATH"
 
 ### Get the OF Path of the controller
-case ${DISK_NAME} in
-	sd*|sg*|sr*) CONTROLLER_PATH=$(cat ${DEVPATH}/../../../devspec) ;;
-	hd*) CONTROLLER_PATH=$(cat ${DEVPATH}/../../devspec) ;;
-	*) CONTROLLER_PATH="" ;;
-esac
+if [ -e  "${DEVPATH}/../../devspec" ]; then
+	### /dev/hd*
+	CONTROLLER_PATH=$(cat ${DEVPATH}/../../devspec);
+elif [ -e "${DEVPATH}/../../../devspec" ]; then
+	### /dev/sd* on kernel <3.3
+	CONTROLLER_PATH=$(cat ${DEVPATH}/../../../devspec);
+elif [ -e "${DEVPATH}/../../../../devspec" ]; then
+	### /dev/sd* on kernel 3.3+	
+	CONTROLLER_PATH=$(cat ${DEVPATH}/../../../../devspec);
+else
+	### None of the above...
+	CONTROLLER_PATH="";
+fi
+
 if [ -z "$CONTROLLER_PATH" ]; then
 	echo "Unable to determine controller path!"
 	exit 1