From 529246df96e2838b18592ed18628d2a122828be8 Mon Sep 17 00:00:00 2001 From: Pawel Jakub Dawidek Date: Mon, 8 Jun 2020 13:57:22 -0700 Subject: Restore support for in-kernel ZFS ioctls In Illumos it is possible to call ioctl functions from within the kernel by passing the FKIOCTL flag. Neither FreeBSD nor Linux support that, but it doesn't hurt to keep it around, as all the code is there. Before this commit it was a dead code and zc_iflags was always zero. Restore this functionality by allowing to pass a flag to the zfsdev_ioctl_common() function. Reviewed-by: Ryan Moeller Reviewed-by: Brian Behlendorf Signed-off-by: Pawel Jakub Dawidek Closes #10417 --- module/os/freebsd/zfs/kmod_core.c | 2 +- module/os/linux/zfs/zfs_ioctl_os.c | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) (limited to 'module/os') diff --git a/module/os/freebsd/zfs/kmod_core.c b/module/os/freebsd/zfs/kmod_core.c index 10807afa3..2e16cf123 100644 --- a/module/os/freebsd/zfs/kmod_core.c +++ b/module/os/freebsd/zfs/kmod_core.c @@ -196,7 +196,7 @@ zfsdev_ioctl(struct cdev *dev, ulong_t zcmd, caddr_t arg, int flag, error = SET_ERROR(EFAULT); goto out; } - error = zfsdev_ioctl_common(vecnum, zc); + error = zfsdev_ioctl_common(vecnum, zc, 0); if (zcl) { zfs_cmd_zof_to_bsd12(zc, zcl); rc = copyout(zcl, uaddr, sizeof (*zcl)); diff --git a/module/os/linux/zfs/zfs_ioctl_os.c b/module/os/linux/zfs/zfs_ioctl_os.c index acaead68f..068974799 100644 --- a/module/os/linux/zfs/zfs_ioctl_os.c +++ b/module/os/linux/zfs/zfs_ioctl_os.c @@ -191,7 +191,7 @@ zfsdev_ioctl(struct file *filp, unsigned cmd, unsigned long arg) error = -SET_ERROR(EFAULT); goto out; } - error = -zfsdev_ioctl_common(vecnum, zc); + error = -zfsdev_ioctl_common(vecnum, zc, 0); rc = ddi_copyout(zc, (void *)(uintptr_t)arg, sizeof (zfs_cmd_t), 0); if (error == 0 && rc != 0) error = -SET_ERROR(EFAULT); -- cgit v1.2.3