aboutsummaryrefslogtreecommitdiffstats
path: root/module
diff options
context:
space:
mode:
authorBrian Behlendorf <[email protected]>2010-11-10 12:58:07 -0800
committerBrian Behlendorf <[email protected]>2010-11-10 13:16:12 -0800
commit8655ce492fff8ebcc432cd841411634510ca09ac (patch)
treee2048fdb05afa77b14ea3de287c327cf8a301186 /module
parent9b2048c26b2579f2de40a185dc56261dd98e7ea3 (diff)
Linux 2.6.36 compat, use fops->unlocked_ioctl()
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 SPL 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().
Diffstat (limited to 'module')
-rw-r--r--module/spl/spl-module.c11
-rw-r--r--module/splat/splat-ctl.c9
2 files changed, 10 insertions, 10 deletions
diff --git a/module/spl/spl-module.c b/module/spl/spl-module.c
index ee6bd696a..3b5161b6d 100644
--- a/module/spl/spl-module.c
+++ b/module/spl/spl-module.c
@@ -53,10 +53,11 @@ out:
return di;
}
-static int
-mod_generic_ioctl(struct inode *ino, struct file *file,
- unsigned int cmd, unsigned long arg)
+static long
+mod_generic_unlocked_ioctl(struct file *file,
+ unsigned int cmd, unsigned long arg)
{
+ struct inode *ino = file->f_dentry->d_inode;
struct dev_info *di;
int rc, flags = 0, rvalp = 0;
cred_t *cr = NULL;
@@ -84,7 +85,7 @@ static long
mod_generic_compat_ioctl(struct file *file,
unsigned int cmd, unsigned long arg)
{
- return mod_generic_ioctl(file->f_dentry->d_inode, file, cmd, arg);
+ return mod_generic_unlocked_ioctl(file, cmd, arg);
}
#endif /* CONFIG_COMPAT */
@@ -125,7 +126,7 @@ __ddi_create_minor_node(dev_info_t *di, char *name, int spec_type,
/* Setup the fops to cb_ops mapping */
fops->owner = mod;
if (cb_ops->cb_ioctl) {
- fops->ioctl = mod_generic_ioctl;
+ fops->unlocked_ioctl = mod_generic_unlocked_ioctl;
#ifdef CONFIG_COMPAT
fops->compat_ioctl = mod_generic_compat_ioctl;
#endif
diff --git a/module/splat/splat-ctl.c b/module/splat/splat-ctl.c
index ba68de212..de72b805f 100644
--- a/module/splat/splat-ctl.c
+++ b/module/splat/splat-ctl.c
@@ -445,9 +445,8 @@ splat_ioctl_cmd(struct file *file, unsigned int cmd, unsigned long arg)
return rc;
}
-static int
-splat_ioctl(struct inode *inode, struct file *file,
- unsigned int cmd, unsigned long arg)
+static long
+splat_unlocked_ioctl(struct file *file, unsigned int cmd, unsigned long arg)
{
unsigned int minor = iminor(file->f_dentry->d_inode);
int rc = 0;
@@ -480,7 +479,7 @@ splat_ioctl(struct inode *inode, struct file *file,
static long
splat_compat_ioctl(struct file *file, unsigned int cmd, unsigned long arg)
{
- return splat_ioctl(NULL, file, cmd, arg);
+ return splat_unlocked_ioctl(file, cmd, arg);
}
#endif /* CONFIG_COMPAT */
@@ -601,7 +600,7 @@ static struct file_operations splat_fops = {
.owner = THIS_MODULE,
.open = splat_open,
.release = splat_release,
- .ioctl = splat_ioctl,
+ .unlocked_ioctl = splat_unlocked_ioctl,
#ifdef CONFIG_COMPAT
.compat_ioctl = splat_compat_ioctl,
#endif