Source-Changes-HG archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

[src/trunk]: src/etc/rc.d Do not flush routes if root file system is nfs moun...



details:   https://anonhg.NetBSD.org/src/rev/3591dd97e108
branches:  trunk
changeset: 747279:3591dd97e108
user:      cegger <cegger%NetBSD.org@localhost>
date:      Tue Sep 08 08:56:33 2009 +0000

description:
Do not flush routes if root file system is nfs mounted.
Fixes boot problem when the nfs server is in a different subnet.

diffstat:

 etc/rc.d/network |  23 ++++++++++++++++++++++-
 1 files changed, 22 insertions(+), 1 deletions(-)

diffs (46 lines):

diff -r 6b78d8c57574 -r 3591dd97e108 etc/rc.d/network
--- a/etc/rc.d/network  Tue Sep 08 07:54:49 2009 +0000
+++ b/etc/rc.d/network  Tue Sep 08 08:56:33 2009 +0000
@@ -1,6 +1,6 @@
 #!/bin/sh
 #
-# $NetBSD: network,v 1.58 2009/05/14 15:33:36 roy Exp $
+# $NetBSD: network,v 1.59 2009/09/08 08:56:33 cegger Exp $
 #
 
 # PROVIDE: network
@@ -12,6 +12,7 @@
 name="network"
 start_cmd="network_start"
 stop_cmd="network_stop"
+fstab_file="/etc/fstab"
 
 nl='
 ' # a newline
@@ -54,6 +55,26 @@
                domainname $domainname
        fi
 
+       # Do not flush routes if root file system is nfs mounted in /etc/fstab,
+       # or the nfs server is unreachable if it is in a different subnet,
+       # otherwise.
+       while read fs_spec fs_file fs_vfstype fs_mntops fs_freq fs_passno
+       do
+               case "${fs_spec}:${fs_file}:${fs_passno}" in
+               \#*|'':*)
+                       continue # skip comment or blank line
+                       ;;
+               *:/:*)  case "${fs_spec}" in
+                       *:*)
+                               echo "Not flushing routes. /: nfs mounted"
+                               flushroutes="NO"
+                               ;;
+                       esac
+                       ;;
+               esac
+       done <"${fstab_file}"
+
+
        # Flush all routes just to make sure it is clean
        if checkyesno flushroutes; then
                /sbin/route -qn flush



Home | Main Index | Thread Index | Old Index