aboutsummaryrefslogtreecommitdiffstats
path: root/module
diff options
context:
space:
mode:
authorRyan Moeller <[email protected]>2020-06-23 16:32:42 -0400
committerGitHub <[email protected]>2020-06-23 13:32:42 -0700
commit9192f27c1d7a8cb367d8691277573f2b756b47b6 (patch)
tree7a51da8b4877cbb24171b7a95bad5104d06dfcce /module
parent2451a553681fac5e7e42bd794adbf5587bce6749 (diff)
Add zfs_multihost_interval tunable handler for FreeBSD
This tunable required a handler to be implemented for ZFS_MODULE_PARAM_CALL. Add the handler so the tunable can be declared in common code. Reviewed-by: Brian Behlendorf <[email protected]> Signed-off-by: Ryan Moeller <[email protected]> Closes #10490
Diffstat (limited to 'module')
-rw-r--r--module/os/freebsd/zfs/sysctl_os.c15
-rw-r--r--module/os/linux/zfs/mmp_os.c7
-rw-r--r--module/zfs/mmp.c6
3 files changed, 22 insertions, 6 deletions
diff --git a/module/os/freebsd/zfs/sysctl_os.c b/module/os/freebsd/zfs/sysctl_os.c
index 544a88956..6d5c88e21 100644
--- a/module/os/freebsd/zfs/sysctl_os.c
+++ b/module/os/freebsd/zfs/sysctl_os.c
@@ -691,3 +691,18 @@ param_set_slop_shift(SYSCTL_HANDLER_ARGS)
return (0);
}
+
+int
+param_set_multihost_interval(SYSCTL_HANDLER_ARGS)
+{
+ int err;
+
+ err = sysctl_handle_long(oidp, arg1, 0, req);
+ if (err != 0 || req->newptr == NULL)
+ return (err);
+
+ if (spa_mode_global != SPA_MODE_UNINIT)
+ mmp_signal_all_threads();
+
+ return (0);
+}
diff --git a/module/os/linux/zfs/mmp_os.c b/module/os/linux/zfs/mmp_os.c
index 9c8545f3c..ff3ef1bf6 100644
--- a/module/os/linux/zfs/mmp_os.c
+++ b/module/os/linux/zfs/mmp_os.c
@@ -25,7 +25,7 @@
#include <sys/zfs_context.h>
#include <sys/mmp.h>
-static int
+int
param_set_multihost_interval(const char *val, zfs_kernel_param_t *kp)
{
int ret;
@@ -39,8 +39,3 @@ param_set_multihost_interval(const char *val, zfs_kernel_param_t *kp)
return (ret);
}
-
-module_param_call(zfs_multihost_interval, param_set_multihost_interval,
- param_get_ulong, &zfs_multihost_interval, 0644);
-MODULE_PARM_DESC(zfs_multihost_interval,
- "Milliseconds between mmp writes to each leaf");
diff --git a/module/zfs/mmp.c b/module/zfs/mmp.c
index e1e468557..4170d7e03 100644
--- a/module/zfs/mmp.c
+++ b/module/zfs/mmp.c
@@ -715,6 +715,12 @@ mmp_signal_all_threads(void)
mutex_exit(&spa_namespace_lock);
}
+/* BEGIN CSTYLED */
+ZFS_MODULE_PARAM_CALL(zfs_multihost, zfs_multihost_, interval,
+ param_set_multihost_interval, param_get_ulong, ZMOD_RW,
+ "Milliseconds between mmp writes to each leaf");
+/* END CSTYLED */
+
ZFS_MODULE_PARAM(zfs_multihost, zfs_multihost_, fail_intervals, UINT, ZMOD_RW,
"Max allowed period without a successful mmp write");