diff options
author | Ryan Moeller <[email protected]> | 2020-06-23 16:32:42 -0400 |
---|---|---|
committer | GitHub <[email protected]> | 2020-06-23 13:32:42 -0700 |
commit | 9192f27c1d7a8cb367d8691277573f2b756b47b6 (patch) | |
tree | 7a51da8b4877cbb24171b7a95bad5104d06dfcce /module | |
parent | 2451a553681fac5e7e42bd794adbf5587bce6749 (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.c | 15 | ||||
-rw-r--r-- | module/os/linux/zfs/mmp_os.c | 7 | ||||
-rw-r--r-- | module/zfs/mmp.c | 6 |
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"); |