mirror of
https://git.proxmox.com/git/mirror_zfs.git
synced 2026-05-22 18:40:43 +03:00
Make the vfs.zfs.vdev.raidz_impl sysctl cross-platform
Reviewed-by: Allan Jude <allan@klarasystems.com> Reviewed-by: Alexander Motin <mav@FreeBSD.org> Signed-off-by: Alan Somers <asomers@gmail.com> Sponsored by: ConnectWise Closes #16980
This commit is contained in:
@@ -679,6 +679,27 @@ param_set_deadman_failmode(SYSCTL_HANDLER_ARGS)
|
||||
return (-param_set_deadman_failmode_common(buf));
|
||||
}
|
||||
|
||||
int
|
||||
param_set_raidz_impl(SYSCTL_HANDLER_ARGS)
|
||||
{
|
||||
const size_t bufsize = 128;
|
||||
char *buf;
|
||||
int rc;
|
||||
|
||||
buf = malloc(bufsize, M_SOLARIS, M_WAITOK | M_ZERO);
|
||||
if (req->newptr == NULL)
|
||||
vdev_raidz_impl_get(buf, bufsize);
|
||||
|
||||
rc = sysctl_handle_string(oidp, buf, bufsize, req);
|
||||
if (rc || req->newptr == NULL) {
|
||||
free(buf, M_SOLARIS);
|
||||
return (rc);
|
||||
}
|
||||
rc = vdev_raidz_impl_set(buf);
|
||||
free(buf, M_SOLARIS);
|
||||
return (rc);
|
||||
}
|
||||
|
||||
int
|
||||
param_set_slop_shift(SYSCTL_HANDLER_ARGS)
|
||||
{
|
||||
|
||||
@@ -0,0 +1,42 @@
|
||||
/*
|
||||
* CDDL HEADER START
|
||||
*
|
||||
* The contents of this file are subject to the terms of the
|
||||
* Common Development and Distribution License (the "License").
|
||||
* You may not use this file except in compliance with the License.
|
||||
*
|
||||
* You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
|
||||
* or https://opensource.org/licenses/CDDL-1.0.
|
||||
* See the License for the specific language governing permissions
|
||||
* and limitations under the License.
|
||||
*
|
||||
* When distributing Covered Code, include this CDDL HEADER in each
|
||||
* file and include the License file at usr/src/OPENSOLARIS.LICENSE.
|
||||
* If applicable, add the following below this CDDL HEADER, with the
|
||||
* fields enclosed by brackets "[]" replaced with your own identifying
|
||||
* information: Portions Copyright [yyyy] [name of copyright owner]
|
||||
*
|
||||
* CDDL HEADER END
|
||||
*/
|
||||
/* Copyright (C) 2025 ConnectWise */
|
||||
|
||||
#include <sys/zfs_context.h>
|
||||
#include <sys/spa.h>
|
||||
#include <sys/zio.h>
|
||||
#include <sys/vdev_impl.h>
|
||||
#include <sys/vdev_raidz.h>
|
||||
|
||||
int
|
||||
param_get_raidz_impl(char *buf, zfs_kernel_param_t *kp)
|
||||
{
|
||||
return (vdev_raidz_impl_get(buf, PAGE_SIZE));
|
||||
}
|
||||
|
||||
int
|
||||
param_set_raidz_impl(const char *val, zfs_kernel_param_t *kp)
|
||||
{
|
||||
int error;
|
||||
|
||||
error = vdev_raidz_impl_set(val);
|
||||
return (error);
|
||||
}
|
||||
Reference in New Issue
Block a user