aboutsummaryrefslogtreecommitdiffstats
path: root/main/alpine-conf/0001-setup-disk-fix-compaq-server-disk-arrays-dev-cciss-c.patch
blob: bef005ae1a84f24e00e05f4bda8608176d983b0e (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
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
From a8e3f8ca13a03356b89d096b25c7e9223aae89c8 Mon Sep 17 00:00:00 2001
From: Natanael Copa <ncopa@alpinelinux.org>
Date: Mon, 7 Nov 2011 14:01:23 +0000
Subject: [PATCH] setup-disk: fix compaq server disk arrays /dev/cciss/c0d0
 style disks

---
 setup-disk.in |   15 +++++++++------
 1 files changed, 9 insertions(+), 6 deletions(-)

diff --git a/setup-disk.in b/setup-disk.in
index 33ab925..a2b610f 100644
--- a/setup-disk.in
+++ b/setup-disk.in
@@ -292,7 +292,8 @@ find_swap_size() {
 	local size=$(( $memtotal_kb * 2 / 1024 ))
 	local disk= disksize=
 	for disk in $@; do
-		local sysfspath=/sys/block/${disk#/dev/}/size
+		local sysfsdev=$(echo ${disk#/dev/} | sed 's:/:!:g')
+		local sysfspath=/sys/block/$sysfsdev/size
 		# disksize = x * 512 / (1024 * 1024) = x / 2048
 		# maxsize = $disksize / 4 = x / (2048 * 4) = x / 8192
 		maxsize=$(awk '{ printf "%i", $0 / 8192 }' $sysfspath )
@@ -312,11 +313,12 @@ find_swap_size() {
 
 has_mounted_part() {
 	local p
+	local sysfsdev=$(echo ${1#/dev/} | sed 's:/:!:g')
 	# parse /proc/mounts for mounted devices
-	for p in $(awk '$1 ~ /^\/dev\// {gsub("/dev/", "", $1); print $1}' \
+	for p in $(awk '$1 ~ /^\/dev\// {gsub("/dev/", "", $1); gsub("/", "!", $1); print $1}' \
 			/proc/mounts); do
-		[ "$p" = "$1" ] && return 0
-		[ -e /sys/block/$1/$p ] && return 0
+		[ "$p" = "$sysfsdev" ] && return 0
+		[ -e /sys/block/$sysfsdev/$p ] && return 0
 	done
 	return 1
 }
@@ -376,11 +378,12 @@ init_progs() {
 show_disk_info() {
 	local disk= vendor= model= d= size=
 	for disk in $@; do
-		d=${disk##*/}
+		local dev=${disk#/dev/}
+		d=$(echo $dev | sed 's:/:!:g')
 		vendor=$(cat /sys/block/$d/device/vendor 2>/dev/null)
 		model=$(cat /sys/block/$d/device/model 2>/dev/null)
 		size=$(awk '{gb = ($1 * 512)/1000000000; printf "%.1f GB\n", gb}' /sys/block/$d/size 2>/dev/null)
-		echo "  $d	($size $vendor $model)"
+		echo "  $dev	($size $vendor $model)"
 	done
 }
 
-- 
1.7.7.2