SOURCES: start_udev - updated (fc4dev)

arekm arekm at pld-linux.org
Sat Sep 10 22:43:54 CEST 2005


Author: arekm                        Date: Sat Sep 10 20:43:54 2005 GMT
Module: SOURCES                       Tag: HEAD
---- Log message:
- updated (fc4dev)

---- Files affected:
SOURCES:
   start_udev (1.11 -> 1.12) 

---- Diffs:

================================================================
Index: SOURCES/start_udev
diff -u SOURCES/start_udev:1.11 SOURCES/start_udev:1.12
--- SOURCES/start_udev:1.11	Wed Sep  7 12:39:38 2005
+++ SOURCES/start_udev	Sat Sep 10 22:43:48 2005
@@ -44,8 +44,9 @@
 	ln -snf /proc/self/fd/2 $udev_root/stderr
 	ln -snf /proc/kcore $udev_root/core
 
-	[ -d $udev_root/pts ] || (mkdir $udev_root/pts;chmod 0755 $udev_root/pts)
-	[ -d $udev_root/shm ] || (mkdir $udev_root/shm;chmod 0755 $udev_root/shm)
+	[ -d $udev_root/pts ] || mkdir -m 0755 $udev_root/pts
+	[ -d $udev_root/shm ] || mkdir -m 0755 $udev_root/shm
+	[ -a /dev/MAKEDEV ] || ln -s $MAKEDEV /dev/MAKEDEV
 
 	if [ -x $MAKEDEV ]; then
 		$MAKEDEV -x $( 
@@ -97,16 +98,15 @@
 		if [ -d "$f" -a ! -L "$f" ]; then
 			found="$found $(find_f $f $what)"
 		elif [ -e "$f" ]; then 
-			[ "$f" != "${f%$what}" ] && found="$found $f"
+			[ "$where/" = "${f%$what}" ] && found="$found $f"
 		fi
 	done
-	echo "$found"
+	[ -n "$found" ] && echo "$found"
 }
 
 # call hotplug with the scsi devices
 scsi_replay () {
-        HOTPLUG=$(cat /proc/sys/kernel/hotplug)
-        [ -z "$HOTPLUG" ] && return 1
+        HOTPLUG="/sbin/udevsend"
 
         scsi_hosts=$(find_d /sys/devices host\*)
         SEQNUM=1
@@ -116,15 +116,10 @@
                 devs=$(find_f $host type)
                 for dev in $devs;do
                         [ -f $dev ] || continue
-                        export SEQNUM
-                        DEVPATH=${dev%/type}
+			DEVPATH=${dev%/type}
                         DEVPATH=${DEVPATH#/sys}
-                        export DEVPATH
-                        export ACTION=add
-                        $HOTPLUG scsi_device
-                        SEQNUM=$(($SEQNUM + 1))
-                        $HOTPLUG scsi 
-                        SEQNUM=$(($SEQNUM + 1))
+                        /bin/env -i DEVPATH="$DEVPATH" SUBSYSTEM=scsi_device ACTION=add $HOTPLUG scsi_device
+                        /bin/env -i DEVPATH="$DEVPATH" ACTION=add SUBSYSTEM=scsi $HOTPLUG scsi
                 done
         done
         return 0
@@ -159,23 +154,42 @@
 }
 
 export ACTION=add
-export UDEV_NO_SLEEP=1
 prog=udev
 ret=0
 nls "Starting udev"
-# propagate $udev_root from /sys
-grep -q "none ${udev_root%/} " /proc/mounts || { 
-	mount -n -o mode=0755 -t tmpfs none "$udev_root"
-	ret=$(($ret + $?))
+
+# mount the tmpfs on ${udev_root%/}, if not already done
+LANG=C awk "\$2 == \"${udev_root%/}\" && \$3 == \"tmpfs\" { exit 1 }" /proc/mounts && {
+        if LANG=C fgrep -q "none ${udev_root%/}/pts " /proc/mounts; then
+                PTSDIR=$(mktemp -d)
+                mount --move $udev_root/pts "$PTSDIR"
+        fi
+        if LANG=C fgrep -q "none ${udev_root%/}/shm " /proc/mounts; then
+                SHMDIR=$(mktemp -d)
+                mount --move $udev_root/shm "$SHMDIR"
+        fi
+        mount -n -o mode=0755 -t tmpfs none "$udev_root"
+        mkdir -m 0755 $udev_root/pts
+        mkdir -m 0755 $udev_root/shm
+        if [ -n "$PTSDIR" ]; then
+                mount --move "$PTSDIR" $udev_root/pts
+                rmdir "$PTSDIR"
+        fi
+        if [ -n "$SHMDIR" ]; then
+                mount --move "$SHMDIR" $udev_root/shm
+                rmdir "$SHMDIR"
+        fi
+
+        ret=$(( $ret + $? ))
 }
+
 rm -rf $udev_root/.udev.tdb
 make_extra_nodes
-kill_udevd >/dev/null 2>&1
-scsi_replay >/dev/null 2>&1
-ret=$(($ret + $?))
-kill_udevd >/dev/null 2>&1
-ide_scan >/dev/null 2>&1
+kill_udevd > "$udev_root/null" 2>&1
+scsi_replay > "$udev_root/null" 2>&1
+ret=$(( $ret + $? ))
+ide_scan > "$udev_root/null" 2>&1
 /sbin/udevstart 
-ret=$(($ret + $?))
+ret=$(( $ret + $? ))
 [ $ret -eq 0 ] && ok || fail
 exit 0
================================================================

---- CVS-web:
    http://cvs.pld-linux.org/SOURCES/start_udev?r1=1.11&r2=1.12&f=u




More information about the pld-cvs-commit mailing list