| #! /bin/sh |
| |
| # In case the interface is used as nfsroot, avoid ifup, otherwise |
| # nfsroot may lose response |
| |
| nfsroot=0 |
| |
| if test "x$IFACE" = xlo ; then |
| exit 0 |
| fi |
| |
| exec 9<&0 < /proc/mounts |
| while read dev mtpt fstype rest; do |
| if test $mtpt = "/" ; then |
| case $fstype in |
| nfs | nfs4) |
| nfsroot=1 |
| nfs_addr=`echo $rest | sed -e 's/^.*addr=\([0-9.]*\).*$/\1/'` |
| break |
| ;; |
| *) |
| ;; |
| esac |
| fi |
| done |
| exec 0<&9 9<&- |
| |
| test $nfsroot -eq 0 && exit 0 |
| |
| if [ -x /bin/ip -o -x /sbin/ip ] ; then |
| nfs_iface=`ip route get $nfs_addr | grep dev | sed -e 's/^.*dev \([-a-z0-9.]*\).*$/\1/'` |
| fi |
| |
| if test "x$IFACE" = "x$nfs_iface" ; then |
| echo "ifup skipped for nfsroot interface $nfs_iface" |
| exit 1 |
| fi |
| |
| exit 0 |