mirror of
https://git.proxmox.com/git/mirror_zfs.git
synced 2024-11-18 02:20:59 +03:00
b83a0e2dc1
We want newer versions of libzfs_core to run against an existing zfs kernel module (i.e. a deferred reboot or module reload after an update). Programmatically document, via a zfs_ioc_key_t, the valid arguments for the ioc commands that rely on nvpair input arguments (i.e. non legacy commands from libzfs_core). Automatically verify the expected pairs before dispatching a command. This initial phase focuses on the non-legacy ioctls. A follow-on change can address the legacy ioctl input from the zfs_cmd_t. The zfs_ioc_key_t for zfs_keys_channel_program looks like: static const zfs_ioc_key_t zfs_keys_channel_program[] = { {"program", DATA_TYPE_STRING, 0}, {"arg", DATA_TYPE_UNKNOWN, 0}, {"sync", DATA_TYPE_BOOLEAN_VALUE, ZK_OPTIONAL}, {"instrlimit", DATA_TYPE_UINT64, ZK_OPTIONAL}, {"memlimit", DATA_TYPE_UINT64, ZK_OPTIONAL}, }; Introduce four input errors to identify specific input failures (in addition to generic argument value errors like EINVAL, ERANGE, EBADF, and E2BIG). ZFS_ERR_IOC_CMD_UNAVAIL the ioctl number is not supported by kernel ZFS_ERR_IOC_ARG_UNAVAIL an input argument is not supported by kernel ZFS_ERR_IOC_ARG_REQUIRED a required input argument is missing ZFS_ERR_IOC_ARG_BADTYPE an input argument has an invalid type Reviewed-by: Matthew Ahrens <mahrens@delphix.com> Reviewed-by: Brian Behlendorf <behlendorf1@llnl.gov> Signed-off-by: Don Brady <don.brady@delphix.com> Closes #7780
15 lines
386 B
Makefile
15 lines
386 B
Makefile
include $(top_srcdir)/config/Rules.am
|
|
|
|
pkgexecdir = $(datadir)/@PACKAGE@/zfs-tests/bin
|
|
|
|
DEFAULT_INCLUDES += \
|
|
-I$(top_srcdir)/include \
|
|
-I$(top_srcdir)/lib/libspl/include
|
|
|
|
pkgexec_PROGRAMS = libzfs_input_check
|
|
|
|
libzfs_input_check_SOURCES = libzfs_input_check.c
|
|
libzfs_input_check_LDADD = \
|
|
$(top_builddir)/lib/libnvpair/libnvpair.la \
|
|
$(top_builddir)/lib/libzfs_core/libzfs_core.la
|