devfs: only check for ioctl function when needed
Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
This commit is contained in:
parent
8196b9e2cc
commit
9ae9ef472e
17
fs/devfs.c
17
fs/devfs.c
|
@ -193,6 +193,8 @@ static int partition_ioctl(struct cdev *cdev, int request, void *buf)
|
||||||
user->eccsize = 0;
|
user->eccsize = 0;
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
if (!cdev->ops->ioctl)
|
||||||
|
return -EINVAL;
|
||||||
return cdev->ops->ioctl(cdev, request, buf);
|
return cdev->ops->ioctl(cdev, request, buf);
|
||||||
default:
|
default:
|
||||||
return -EINVAL;
|
return -EINVAL;
|
||||||
|
@ -202,17 +204,14 @@ static int partition_ioctl(struct cdev *cdev, int request, void *buf)
|
||||||
static int devfs_ioctl(struct device_d *_dev, FILE *f, int request, void *buf)
|
static int devfs_ioctl(struct device_d *_dev, FILE *f, int request, void *buf)
|
||||||
{
|
{
|
||||||
struct cdev *cdev = f->inode;
|
struct cdev *cdev = f->inode;
|
||||||
int ret = -EINVAL;
|
|
||||||
|
|
||||||
if (!cdev->ops->ioctl)
|
|
||||||
goto out;
|
|
||||||
|
|
||||||
if (cdev->flags & DEVFS_IS_PARTITION)
|
if (cdev->flags & DEVFS_IS_PARTITION)
|
||||||
ret = partition_ioctl(cdev, request, buf);
|
return partition_ioctl(cdev, request, buf);
|
||||||
else
|
|
||||||
ret = cdev->ops->ioctl(cdev, request, buf);
|
if (!cdev->ops->ioctl)
|
||||||
out:
|
return -EINVAL;
|
||||||
return ret;
|
|
||||||
|
return cdev->ops->ioctl(cdev, request, buf);
|
||||||
}
|
}
|
||||||
|
|
||||||
static int devfs_truncate(struct device_d *dev, FILE *f, ulong size)
|
static int devfs_truncate(struct device_d *dev, FILE *f, ulong size)
|
||||||
|
|
Loading…
Reference in New Issue