diff options
Diffstat (limited to 'meta/recipes-core/netbase/netbase-4.43/nfsroot')
-rw-r--r-- | meta/recipes-core/netbase/netbase-4.43/nfsroot | 39 |
1 files changed, 39 insertions, 0 deletions
diff --git a/meta/recipes-core/netbase/netbase-4.43/nfsroot b/meta/recipes-core/netbase/netbase-4.43/nfsroot new file mode 100644 index 0000000000..fc384a8ea5 --- /dev/null +++ b/meta/recipes-core/netbase/netbase-4.43/nfsroot @@ -0,0 +1,39 @@ +#! /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 test -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 |