# -*-Shell-script-*- 

function qmemtune() {
	local me=nfsqmemtune
	local varmem; local newmem; local orgval

	[ "$1" = "-tune" ] && QMEMTUNE=

	for i in rmem_default rmem_max wmem_default wmem_max; do
		varmem=$(echo $i |sed 's/.*/\U&\E/')
		eval newmem=\$$varmem
		if [ -n "$newmem" ]; then
			if [ "$1" = "-tune" ]; then
				mkdir /tmp/$me &>/dev/null
				cat /proc/sys/net/core/$i > /tmp/${me}/${i}.tmp
				echo $newmem > /proc/sys/net/core/$i
				QMEMTUNE=1
			elif [ "$1" = "-restore" ]; then
				orgval=$(cat /tmp/${me}/${i}.tmp)
				if [ -n "$orgval" ]; then
					echo $orgval > /proc/sys/net/core/$i
				fi
			fi
		fi
	done

	if [ "$1" = "-restore" ]; then
		rm -rf /tmp/${me} &>/dev/null
		QMEMTUNE=
	fi
}
