mirror of
https://github.com/freebsd/freebsd-src
synced 2024-10-15 12:54:27 +00:00
rc.d/linux: Attempt to mount only if necessary
Currently, if the linux service is run twice, mount(8) fails with: mount: linprocfs: Device busy mount: linsysfs: Device busy mount: devfs: Device busy mount: fdescfs: Device busy mount: tmpfs: Device busy It is a bit more user-friendly if before running mount(8) the service checks if there are any file systems left to be mounted. This patch implements this behavior. Also, while here, create mount points directories (as suggested by otis). Reviewed by: trasz Approved by: trasz (src) Differential Revision: https://reviews.freebsd.org/D32463
This commit is contained in:
parent
06d5ef0aad
commit
5690261858
|
@ -15,6 +15,17 @@ rcvar="linux_enable"
|
|||
start_cmd="${name}_start"
|
||||
stop_cmd=":"
|
||||
|
||||
linux_mount() {
|
||||
local _fs _mount_point
|
||||
_fs="$1"
|
||||
_mount_point="$2"
|
||||
shift 2
|
||||
if ! mount | grep -q "^$_fs on $_mount_point ("; then
|
||||
mkdir -p "$_mount_point"
|
||||
mount "$@" -t "$_fs" "$_fs" "$_mount_point"
|
||||
fi
|
||||
}
|
||||
|
||||
linux_start()
|
||||
{
|
||||
local _emul_path _tmpdir
|
||||
|
@ -61,12 +72,12 @@ linux_start()
|
|||
sysctl kern.elf32.fallback_brand=3 > /dev/null
|
||||
fi
|
||||
|
||||
if checkyesno linux_mounts_enable; then
|
||||
mount -o nocover -t linprocfs linprocfs "${_emul_path}/proc"
|
||||
mount -o nocover -t linsysfs linsysfs "${_emul_path}/sys"
|
||||
mount -o nocover -t devfs devfs "${_emul_path}/dev"
|
||||
mount -o nocover,linrdlnk -t fdescfs fdescfs "${_emul_path}/dev/fd"
|
||||
mount -o nocover,mode=1777 -t tmpfs tmpfs "${_emul_path}/dev/shm"
|
||||
if checkyesno linux_mounts_enable; then
|
||||
linux_mount linprocfs "${_emul_path}/proc" -o nocover
|
||||
linux_mount linsysfs "${_emul_path}/sys" -o nocover
|
||||
linux_mount devfs "${_emul_path}/dev" -o nocover
|
||||
linux_mount fdescfs "${_emul_path}/dev/fd" -o nocover,linrdlnk
|
||||
linux_mount tmpfs "${_emul_path}/dev/shm" -o nocover,mode=1777
|
||||
fi
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in a new issue