As of linux-2.6.36 the last in-tree consumer of fops->ioctl() has
been removed and thus fops()->ioctl() has also been removed. The
replacement hook is fops->unlocked_ioctl() which has existed in
kernel since 2.6.12. Since the ZFS code only contains support
back to 2.6.18 vintage kernels, I'm not adding an autoconf check
for this and simply moving everything to use fops->unlocked_ioctl().
-static int
-zpios_ioctl(struct inode *inode, struct file *file,
- unsigned int cmd, unsigned long arg)
+static long
+zpios_unlocked_ioctl(struct file *file, unsigned int cmd, unsigned long arg)
- unsigned int minor = iminor(inode);
+ unsigned int minor = iminor(file->f_dentry->d_inode);
int rc = 0;
/* Ignore tty ioctls */
int rc = 0;
/* Ignore tty ioctls */
static long
zpios_compat_ioctl(struct file *file, unsigned int cmd, unsigned long arg)
{
static long
zpios_compat_ioctl(struct file *file, unsigned int cmd, unsigned long arg)
{
- return zpios_ioctl(file->f_dentry->d_inode, file, cmd, arg);
+ return zpios_unlocked_ioctl(file, cmd, arg);
}
#endif /* CONFIG_COMPAT */
}
#endif /* CONFIG_COMPAT */
.owner = THIS_MODULE,
.open = zpios_open,
.release = zpios_release,
.owner = THIS_MODULE,
.open = zpios_open,
.release = zpios_release,
+ .unlocked_ioctl = zpios_unlocked_ioctl,
#ifdef CONFIG_COMPAT
.compat_ioctl = zpios_compat_ioctl,
#endif
#ifdef CONFIG_COMPAT
.compat_ioctl = zpios_compat_ioctl,
#endif