]> code.ossystems Code Review - openembedded-core.git/commitdiff
busybox:udhcpc: fix the root_is_nfs() function
authorRoy.Li <rongqing.li@windriver.com>
Tue, 24 Jul 2012 01:23:19 +0000 (09:23 +0800)
committerRichard Purdie <richard.purdie@linuxfoundation.org>
Thu, 26 Jul 2012 13:39:49 +0000 (14:39 +0100)
[YOCTO #2788]

The system will be hung when udhcpc starts, if nfs is mounted
at "/" directory and default route is different after starting
udhcpc.

The cause is that root_is_nfs() does not work after kernel-2.6.37,
since the device name has been changed from /dev/root to
${IPADDR}:${NFSDIR} on /proc/mounts. which leads to remove
the default routes to nfs server,

Now we use a loose match to check if rootfs is nfs.

Signed-off-by: Roy.Li <rongqing.li@windriver.com>
Signed-off-by: Saul Wold <sgw@linux.intel.com>
meta/recipes-core/busybox/busybox_1.19.4.bb
meta/recipes-core/busybox/files/simple.script

index cc97e2a85391a0a4b46c390ae26b3503d34b22e0..7bdfbda53871be248c352efcdd037f4b7e1d1cda 100644 (file)
@@ -1,5 +1,5 @@
 require busybox.inc
-PR = "r10"
+PR = "r11"
 
 SRC_URI = "http://www.busybox.net/downloads/busybox-${PV}.tar.bz2;name=tarball \
            file://B921600.patch \
index 27368f0ee5b42f6851857ef7412a436fa6a7b928..69739850d8b4443c46f22d7804d4fcc35d378cbf 100644 (file)
@@ -10,7 +10,8 @@ RESOLV_CONF="/etc/resolv.conf"
 
 # return 0 if root is mounted on a network filesystem
 root_is_nfs() {
-       grep -qe '^/dev/root.*\(nfs\|smbfs\|ncp\|coda\) .*' /proc/mounts
+       sed -n 's/^[^ ]* \([^ ]*\) \([^ ]*\) .*$/\1 \2/p' /proc/mounts |
+       grep -q "^/ \(nfs\|smbfs\|ncp\|coda\)$"
 }
 
 have_bin_ip=0