mirror of
https://git.proxmox.com/git/mirror_zfs.git
synced 2026-05-24 11:18:52 +03:00
Refactor deadman set failmode to be cross platform
Update zfs_deadman_failmode to use the ZFS_MODULE_PARAM_CALL wrapper, and split the common and platform specific portions. Reviewed-by: Jorgen Lundman <lundman@lundman.net> Reviewed-by: Brian Behlendorf <behlendorf1@llnl.gov> Signed-off-by: Matt Macy <mmacy@FreeBSD.org> Closes #9670
This commit is contained in:
committed by
Brian Behlendorf
parent
2a8ba608d3
commit
e64e84eca5
+9
-11
@@ -2708,21 +2708,21 @@ spa_suspend_async_destroy(spa_t *spa)
|
||||
|
||||
#if defined(_KERNEL)
|
||||
|
||||
static int
|
||||
param_set_deadman_failmode(const char *val, zfs_kernel_param_t *kp)
|
||||
int
|
||||
param_set_deadman_failmode_common(const char *val)
|
||||
{
|
||||
spa_t *spa = NULL;
|
||||
char *p;
|
||||
|
||||
if (val == NULL)
|
||||
return (SET_ERROR(-EINVAL));
|
||||
return (SET_ERROR(EINVAL));
|
||||
|
||||
if ((p = strchr(val, '\n')) != NULL)
|
||||
*p = '\0';
|
||||
|
||||
if (strcmp(val, "wait") != 0 && strcmp(val, "continue") != 0 &&
|
||||
strcmp(val, "panic"))
|
||||
return (SET_ERROR(-EINVAL));
|
||||
return (SET_ERROR(EINVAL));
|
||||
|
||||
if (spa_mode_global != SPA_MODE_UNINIT) {
|
||||
mutex_enter(&spa_namespace_lock);
|
||||
@@ -2731,7 +2731,7 @@ param_set_deadman_failmode(const char *val, zfs_kernel_param_t *kp)
|
||||
mutex_exit(&spa_namespace_lock);
|
||||
}
|
||||
|
||||
return (param_set_charp(val, kp));
|
||||
return (0);
|
||||
}
|
||||
#endif
|
||||
|
||||
@@ -2847,13 +2847,11 @@ ZFS_MODULE_PARAM(zfs, zfs_, ddt_data_is_special, INT, ZMOD_RW,
|
||||
ZFS_MODULE_PARAM(zfs, zfs_, user_indirect_is_special, INT, ZMOD_RW,
|
||||
"Place user data indirect blocks into the special class");
|
||||
|
||||
#ifdef _KERNEL
|
||||
module_param_call(zfs_deadman_failmode, param_set_deadman_failmode,
|
||||
param_get_charp, &zfs_deadman_failmode, 0644);
|
||||
MODULE_PARM_DESC(zfs_deadman_failmode, "Failmode for deadman timer");
|
||||
#endif
|
||||
|
||||
/* BEGIN CSTYLED */
|
||||
ZFS_MODULE_PARAM_CALL(zfs_deadman, zfs_deadman_, failmode,
|
||||
param_set_deadman_failmode, param_get_charp, ZMOD_RW,
|
||||
"Failmode for deadman timer");
|
||||
|
||||
ZFS_MODULE_PARAM_CALL(zfs_deadman, zfs_deadman_, synctime_ms,
|
||||
param_set_deadman_synctime, param_get_ulong, ZMOD_RW,
|
||||
"Pool sync expiration time in milliseconds");
|
||||
|
||||
Reference in New Issue
Block a user