On Sun, 7 Apr 2019 18:31:45 +0000 (UTC)
Chris Rees <cr...@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-h...@freebsd.org mailing list
> https://lists.freebsd.org/mailman/listinfo/svn-src-head
> To unsubscribe, send any mail to "svn-src-head-unsubscr...@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


_______________________________________________
svn-src-all@freebsd.org mailing list
https://lists.freebsd.org/mailman/listinfo/svn-src-all
To unsubscribe, send any mail to "svn-src-all-unsubscr...@freebsd.org"

Reply via email to