| Current Path : /proc/8644/root/proc/self/root/proc/8644/root/usr/share/initramfs-tools/scripts/ | 
| Current File : //proc/8644/root/proc/self/root/proc/8644/root/usr/share/initramfs-tools/scripts/nfs | 
# NFS filesystem mounting			-*- shell-script -*-
# FIXME This needs error checking
retry_nr=0
# parse nfs bootargs and mount nfs
do_nfsmount()
{
	configure_networking
	# get nfs root from dhcp
	if [ "x${NFSROOT}" = "xauto" ]; then
		# check if server ip is part of dhcp root-path
		if [ "${ROOTPATH#*:}" = "${ROOTPATH}" ]; then
			NFSROOT=${ROOTSERVER}:${ROOTPATH}
		else
			NFSROOT=${ROOTPATH}
		fi
	# nfsroot=[<server-ip>:]<root-dir>[,<nfs-options>]
	elif [ -n "${NFSROOT}" ]; then
		# nfs options are an optional arg
		if [ "${NFSROOT#*,}" != "${NFSROOT}" ]; then
			NFSOPTS="-o ${NFSROOT#*,}"
		fi
		NFSROOT=${NFSROOT%%,*}
		if [ "${NFSROOT#*:}" = "$NFSROOT" ]; then
			NFSROOT=${ROOTSERVER}:${NFSROOT}
		fi
	fi
	if [ -z "${NFSOPTS}" ]; then
		NFSOPTS="-o retrans=10"
	fi
	[ "$quiet" != "y" ] && log_begin_msg "Running /scripts/nfs-premount"
	run_scripts /scripts/nfs-premount
	[ "$quiet" != "y" ] && log_end_msg
	if [ ${readonly} = y ]; then
		roflag="-o ro"
	else
		roflag="-o rw"
	fi
	nfsmount -o nolock ${roflag} ${NFSOPTS} ${NFSROOT} ${rootmnt}
}
# NFS root mounting
mountroot()
{
	[ "$quiet" != "y" ] && log_begin_msg "Running /scripts/nfs-top"
	run_scripts /scripts/nfs-top
	[ "$quiet" != "y" ] && log_end_msg
	modprobe nfs
	# For DHCP
	modprobe af_packet
	wait_for_udev 10
	# Default delay is around 180s
	delay=${ROOTDELAY:-180}
	# loop until nfsmount succeeds
	do_nfsmount
	while [ ${retry_nr} -lt ${delay} ] && [ ! -e ${rootmnt}${init} ]; do
		[ "$quiet" != "y" ] && log_begin_msg "Retrying nfs mount"
		/bin/sleep 1
		do_nfsmount
		retry_nr=$(( ${retry_nr} + 1 ))
		[ "$quiet" != "y" ] && log_end_msg
	done
	[ "$quiet" != "y" ] && log_begin_msg "Running /scripts/nfs-bottom"
	run_scripts /scripts/nfs-bottom
	[ "$quiet" != "y" ] && log_end_msg
}