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().
This commit is contained in:
Brian Behlendorf 2010-11-10 12:58:07 -08:00
parent 9b2048c26b
commit 8655ce492f
2 changed files with 10 additions and 10 deletions

View File

@ -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

View File

@ -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