#!/sbin/runscript
# Copyright 1999-2008 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
# $Header: /var/cvsroot/gentoo-x86/net-fs/nfs-utils/files/rpc.pipefs.initd,v 1.1 2008/10/26 09:02:47 vapier Exp $

mount_pipefs() {
	# if rpc_pipefs is not available, try to load sunrpc for it #219566
	grep -qs rpc_pipefs /proc/filesystems || modprobe -q sunrpc
	# if still not available, let's bail
	grep -qs rpc_pipefs /proc/filesystems || return 1

	# now just do it for kicks
	mkdir -p /var/lib/nfs/rpc_pipefs
	mount -t rpc_pipefs rpc_pipefs /var/lib/nfs/rpc_pipefs
}

start() {
	# if things are already mounted, let's just return
	grep -qs "rpc_pipefs /var/lib/nfs/rpc_pipefs" /proc/mounts && return 0

	ebegin "Mounting RPC pipefs"
	mount_pipefs
	eend $?
}
