svn commit: r346017 - in head: libexec/rc libexec/rc/rc.d share/man/man5

O. Hartmann ohartmann at walstatt.org
Tue Sep 3 14:06:36 UTC 2019


On Sun, 7 Apr 2019 18:31:45 +0000 (UTC)
Chris Rees <crees at FreeBSD.org> wrote:

> Author: crees (doc,ports committer)
> Date: Sun Apr  7 18:31:45 2019
> New Revision: 346017
> URL: https://svnweb.freebsd.org/changeset/base/346017
>
> Log:
>   Remove now unnecessary kldstat check before attempting to load modules.
>
>   Since r233109, kldload has the -n option, which silently ignores options
>   that are already loaded.
>
>   https://lists.freebsd.org/pipermail/freebsd-rc/2018-December/003899.html
>
>   Note that this script no longer reports if the module is already loaded,
>   but it could be argued this wasn't particularly useful information.
>
>   PR:			docs/234248
>   Reviewed by:		bcr (docs), kib, rgrimes (visual)
>   Approved by:		jilles
>   Differential Revision:	https://reviews.freebsd.org/D18670
>
> Modified:
>   head/libexec/rc/rc.d/abi
>   head/libexec/rc/rc.d/bthidd
>   head/libexec/rc/rc.d/cfumass
>   head/libexec/rc/rc.d/kld
>   head/libexec/rc/rc.d/mdconfig
>   head/libexec/rc/rc.d/mdconfig2
>   head/libexec/rc/rc.d/mountcritremote
>   head/libexec/rc/rc.d/syscons
>   head/libexec/rc/rc.subr
>   head/share/man/man5/rc.conf.5
>
> Modified: head/libexec/rc/rc.d/abi
> ==============================================================================
> --- head/libexec/rc/rc.d/abi	Sun Apr  7 18:24:26 2019	(r346016)
> +++ head/libexec/rc/rc.d/abi	Sun Apr  7 18:31:45 2019	(r346017)
> @@ -27,10 +27,10 @@ linux_start()
>  	local _tmpdir
>
>  	echo -n ' linux'
> -	load_kld -e 'linux(aout|elf)' linux
> +	load_kld linux
>  	case `sysctl -n hw.machine_arch` in
>  	amd64)
> -		load_kld -e 'linux64elf' linux64
> +		load_kld linux64
>  		;;
>  	esac
>  	if [ -x /compat/linux/sbin/ldconfigDisabled ]; then
>
> Modified: head/libexec/rc/rc.d/bthidd
> ==============================================================================
> --- head/libexec/rc/rc.d/bthidd	Sun Apr  7 18:24:26 2019
> (r346016) +++ head/libexec/rc/rc.d/bthidd	Sun Apr  7 18:31:45
> 2019	(r346017) @@ -34,11 +34,11 @@ evdev_enabled()
>  bthidd_prestart()
>  {
>  	if evdev_enabled; then
> -		load_kld -m uinput uinput
> +		load_kld uinput
>  	fi
> -	load_kld -m kbdmux kbdmux
> -	load_kld -m vkbd vkbd
> -	load_kld -m ng_btsocket ng_btsocket
> +	load_kld kbdmux
> +	load_kld vkbd
> +	load_kld ng_btsocket
>  	return 0
>  }
>
>
> Modified: head/libexec/rc/rc.d/cfumass
> ==============================================================================
> --- head/libexec/rc/rc.d/cfumass	Sun Apr  7 18:24:26 2019
> (r346016) +++ head/libexec/rc/rc.d/cfumass	Sun Apr  7 18:31:45
> 2019	(r346017) @@ -75,7 +75,7 @@ cfumass_start()
>  		return "${err}"
>  	fi
>
> -	load_kld -e cfumass cfumass
> +	load_kld cfumass
>
>  	# If the template is already switched to Mass Storage, then reset
>  	# it to -1 to force the host to reenumerate it; otherwise it might
>
> Modified: head/libexec/rc/rc.d/kld
> ==============================================================================
> --- head/libexec/rc/rc.d/kld	Sun Apr  7 18:24:26 2019	(r346016)
> +++ head/libexec/rc/rc.d/kld	Sun Apr  7 18:31:45 2019	(r346017)
> @@ -46,7 +46,7 @@ kld_start()
>
>  	echo 'Loading kernel modules:'
>  	for _kld in $kld_list ; do
> -		load_kld -e ${_kld}.ko $_kld
> +		load_kld $_kld
>  	done
>  }
>
>
> Modified: head/libexec/rc/rc.d/mdconfig
> ==============================================================================
> --- head/libexec/rc/rc.d/mdconfig	Sun Apr  7 18:24:26 2019
> (r346016) +++ head/libexec/rc/rc.d/mdconfig	Sun Apr  7 18:31:45
> 2019	(r346017) @@ -114,7 +114,7 @@ mdconfig_start()
>  					continue
>  				fi
>  				if [ "${_file}" != "${_file%.uzip}" ]; then
> -					load_kld -m g_uzip geom_uzip ||
> return 3
> +					load_kld geom_uzip || return 3
>  					# sleep a bit to allow creation
> of /dev/mdX.uzip sleep 2
>  				fi
>
> Modified: head/libexec/rc/rc.d/mdconfig2
> ==============================================================================
> --- head/libexec/rc/rc.d/mdconfig2	Sun Apr  7 18:24:26 2019
> (r346016) +++ head/libexec/rc/rc.d/mdconfig2	Sun Apr  7 18:31:45
> 2019	(r346017) @@ -123,7 +123,7 @@ mdconfig2_start()
>  		# been created.
>  		if [ "${_type}" = "vnode" -a "${_fs}" != "/" ]; then
>  			if [ "${_file}" != "${_file%.uzip}" ]; then
> -				load_kld -m g_uzip geom_uzip || return 3
> +				load_kld geom_uzip || return 3
>  			fi
>  			if is_readonly ${_fs}; then
>  				warn "${_fs} is mounted read-only, skipping
> ${_md}."
>
> Modified: head/libexec/rc/rc.d/mountcritremote
> ==============================================================================
> --- head/libexec/rc/rc.d/mountcritremote	Sun Apr  7 18:24:26
> 2019	(r346016) +++ head/libexec/rc/rc.d/mountcritremote	Sun
> Apr  7 18:31:45 2019	(r346017) @@ -27,7 +27,7 @@
> mountcritremote_precmd() case "`mount -d -a -t nfs 2> /dev/null`" in
>  	*mount_nfs*)
>  		# Handle absent nfs client support
> -		load_kld -m nfs nfscl || return 1
> +		load_kld nfscl || return 1
>  		;;
>  	esac
>  	return 0
>
> Modified: head/libexec/rc/rc.d/syscons
> ==============================================================================
> --- head/libexec/rc/rc.d/syscons	Sun Apr  7 18:24:26 2019
> (r346016) +++ head/libexec/rc/rc.d/syscons	Sun Apr  7 18:31:45
> 2019	(r346017) @@ -346,7 +346,7 @@ syscons_start()
>  		for i in `kldstat | awk '$5 ~ "_saver\.ko$" { print $5 }'`;
> do kldunload ${i}
>  		done
> -		load_kld -e _saver ${saver}_saver
> +		load_kld ${saver}_saver
>  		;;
>  	esac
>
>
> Modified: head/libexec/rc/rc.subr
> ==============================================================================
> --- head/libexec/rc/rc.subr	Sun Apr  7 18:24:26 2019	(r346016)
> +++ head/libexec/rc/rc.subr	Sun Apr  7 18:31:45 2019	(r346017)
> @@ -1853,48 +1853,29 @@ mount_md()
>  }
>
>  # Code common to scripts that need to load a kernel module
> -# if it isn't in the kernel yet. Syntax:
> -#   load_kld [-e regex] [-m module] file
> -# where -e or -m chooses the way to check if the module
> -# is already loaded:
> -#   regex is egrep'd in the output from `kldstat -v',
> -#   module is passed to `kldstat -m'.
> -# The default way is as though `-m file' were specified.
> +# if it isn't in the kernel yet.  Syntax:
> +#   load_kld file
>  load_kld()
>  {
> -	local _loaded _mod _opt _re
> +	local _opt
>
> +	# Silently ignore legacy options; they are unnecessary
>  	while getopts "e:m:" _opt; do
>  		case "$_opt" in
> -		e) _re="$OPTARG" ;;
> -		m) _mod="$OPTARG" ;;
> -		*) err 3 'USAGE: load_kld [-e regex] [-m module] file' ;;
> +		e) ;;
> +		m) ;;
> +		*) err 3 'USAGE: load_kld file' ;;
>  		esac
>  	done
>  	shift $(($OPTIND - 1))
>  	if [ $# -ne 1 ]; then
> -		err 3 'USAGE: load_kld [-e regex] [-m module] file'
> +		err 3 'USAGE: load_kld file'
>  	fi
> -	_mod=${_mod:-$1}
> -	_loaded=false
> -	if [ -n "$_re" ]; then
> -		if kldstat -v | egrep -q -e "$_re"; then
> -			_loaded=true
> -		fi
> +	if ! kldload -n "$1"; then
> +		warn "Unable to load kernel module $1"
> +		return 1
>  	else
> -		if kldstat -q -m "$_mod"; then
> -			_loaded=true
> -		fi
> -	fi
> -	if ! $_loaded; then
> -		if ! kldload "$1"; then
> -			warn "Unable to load kernel module $1"
> -			return 1
> -		else
> -			info "$1 kernel module loaded."
> -		fi
> -	else
> -		debug "load_kld: $1 kernel module already loaded."
> +		info "$1 kernel module loaded."
>  	fi
>  	return 0
>  }
>
> Modified: head/share/man/man5/rc.conf.5
> ==============================================================================
> --- head/share/man/man5/rc.conf.5	Sun Apr  7 18:24:26 2019
> (r346016) +++ head/share/man/man5/rc.conf.5	Sun Apr  7 18:31:45
> 2019	(r346017) @@ -24,7 +24,7 @@
>  .\"
>  .\" $FreeBSD$
>  .\"
> -.Dd March 21, 2019
> +.Dd April 7, 2019
>  .Dt RC.CONF 5
>  .Os
>  .Sh NAME
> @@ -249,9 +249,7 @@ Default
>  .It Va kld_list
>  .Pq Vt str
>  A whitespace-separated list of kernel modules to load right after
> -the local disks are mounted, without any
> -.Pa .ko
> -extension or path.
> +the local disks are mounted, with optional path.
>  Loading modules at this point in the boot process is
>  much faster than doing it via
>  .Pa /boot/loader.conf
> _______________________________________________
> svn-src-head at freebsd.org mailing list
> https://lists.freebsd.org/mailman/listinfo/svn-src-head
> To unsubscribe, send any mail to "svn-src-head-unsubscribe at freebsd.org"

It seems this patch breaks ZFS if ZFS is built-in kernel!

Having ZFS as kernel built-in leaves the system not mounting ANY(!) ZFS volume
at boot time, rendering servers unusable.
Mounting ZFS filesystems with "zfs mount -a" bring back the ZFS filesystems as
expected.

Regards,

oh




More information about the svn-src-head mailing list