From 042d43a1ddf114ea72d83fd45cc926724f74f5fc Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Martin=20Matu=C5=A1ka?= Date: Tue, 20 Sep 2022 02:21:45 +0200 Subject: [PATCH] FreeBSD: fix static module build broken in 7bb707ffa param_set_arc_free_target(SYSCTL_HANDLER_ARGS) and param_set_arc_no_grow_shift(SYSCTL_HANDLER_ARGS) defined in sysctl_os.c must be made available to arc_os.c. Reviewed-by: Alexander Motin Reviewed-by: Ryan Moeller Signed-off-by: Martin Matuska Closes #13915 --- include/os/freebsd/zfs/sys/arc_os.h | 34 +++++++++++++++++++++++++++++ module/os/freebsd/zfs/arc_os.c | 3 +-- module/os/freebsd/zfs/sysctl_os.c | 5 +++-- 3 files changed, 38 insertions(+), 4 deletions(-) create mode 100644 include/os/freebsd/zfs/sys/arc_os.h diff --git a/include/os/freebsd/zfs/sys/arc_os.h b/include/os/freebsd/zfs/sys/arc_os.h new file mode 100644 index 000000000..a95618b91 --- /dev/null +++ b/include/os/freebsd/zfs/sys/arc_os.h @@ -0,0 +1,34 @@ +/* + * SPDX-License-Identifier: BSD-2-Clause-FreeBSD + * + * Copyright (c) 2022 Martin Matuska + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + */ + +#ifndef _SYS_ARC_OS_H +#define _SYS_ARC_OS_H + +int param_set_arc_free_target(SYSCTL_HANDLER_ARGS); +int param_set_arc_no_grow_shift(SYSCTL_HANDLER_ARGS); + +#endif diff --git a/module/os/freebsd/zfs/arc_os.c b/module/os/freebsd/zfs/arc_os.c index f1a3a0faf..30e96a889 100644 --- a/module/os/freebsd/zfs/arc_os.c +++ b/module/os/freebsd/zfs/arc_os.c @@ -27,6 +27,7 @@ #include #include #include +#include #include #include #include @@ -72,11 +73,9 @@ SYSINIT(arc_free_target_init, SI_SUB_KTHREAD_PAGE, SI_ORDER_ANY, * We don't have a tunable for arc_free_target due to the dependency on * pagedaemon initialisation. */ -int param_set_arc_free_target(SYSCTL_HANDLER_ARGS); ZFS_MODULE_PARAM_CALL(zfs_arc, zfs_arc_, free_target, param_set_arc_free_target, 0, CTLFLAG_RW, "Desired number of free pages below which ARC triggers reclaim"); -int param_set_arc_no_grow_shift(SYSCTL_HANDLER_ARGS); ZFS_MODULE_PARAM_CALL(zfs_arc, zfs_arc_, no_grow_shift, param_set_arc_no_grow_shift, 0, ZMOD_RW, "log2(fraction of ARC which must be free to allow growing)"); diff --git a/module/os/freebsd/zfs/sysctl_os.c b/module/os/freebsd/zfs/sysctl_os.c index cd384c205..4d908381c 100644 --- a/module/os/freebsd/zfs/sysctl_os.c +++ b/module/os/freebsd/zfs/sysctl_os.c @@ -53,6 +53,7 @@ __FBSDID("$FreeBSD$"); #include #include #include +#include #include #include #include @@ -228,7 +229,7 @@ SYSCTL_PROC(_vfs_zfs, OID_AUTO, arc_min, extern uint_t zfs_arc_free_target; -static int +int param_set_arc_free_target(SYSCTL_HANDLER_ARGS) { uint_t val; @@ -261,7 +262,7 @@ SYSCTL_PROC(_vfs_zfs, OID_AUTO, arc_free_target, " (LEGACY)"); /* END CSTYLED */ -static int +int param_set_arc_no_grow_shift(SYSCTL_HANDLER_ARGS) { int err, val;