firewire: cdev: mark char device files as not seekable
The <linux/firewire-cdev.h> character device file ABI (i.e. /dev/fw* character device file interface) does not make any use of lseek(), pread(), pwrite() (or any kind of write() at all). Use nonseekable_open() and, redundantly, set file_operations.llseek to no_llseek to remove any doubt whether the BKL-grabbing default_llseek handler is used. (Also shuffle file_operations initialization according to the order of handler definitions.) Signed-off-by: Stefan Richter <stefanr@s5r6.in-berlin.de>
This commit is contained in:
@@ -226,7 +226,7 @@ static int fw_device_op_open(struct inode *inode, struct file *file)
|
|||||||
list_add_tail(&client->link, &device->client_list);
|
list_add_tail(&client->link, &device->client_list);
|
||||||
mutex_unlock(&device->client_list_mutex);
|
mutex_unlock(&device->client_list_mutex);
|
||||||
|
|
||||||
return 0;
|
return nonseekable_open(inode, file);
|
||||||
}
|
}
|
||||||
|
|
||||||
static void queue_event(struct client *client, struct event *event,
|
static void queue_event(struct client *client, struct event *event,
|
||||||
@@ -1495,13 +1495,13 @@ static unsigned int fw_device_op_poll(struct file *file, poll_table * pt)
|
|||||||
|
|
||||||
const struct file_operations fw_device_ops = {
|
const struct file_operations fw_device_ops = {
|
||||||
.owner = THIS_MODULE,
|
.owner = THIS_MODULE,
|
||||||
|
.llseek = no_llseek,
|
||||||
.open = fw_device_op_open,
|
.open = fw_device_op_open,
|
||||||
.read = fw_device_op_read,
|
.read = fw_device_op_read,
|
||||||
.unlocked_ioctl = fw_device_op_ioctl,
|
.unlocked_ioctl = fw_device_op_ioctl,
|
||||||
.poll = fw_device_op_poll,
|
|
||||||
.release = fw_device_op_release,
|
|
||||||
.mmap = fw_device_op_mmap,
|
.mmap = fw_device_op_mmap,
|
||||||
|
.release = fw_device_op_release,
|
||||||
|
.poll = fw_device_op_poll,
|
||||||
#ifdef CONFIG_COMPAT
|
#ifdef CONFIG_COMPAT
|
||||||
.compat_ioctl = fw_device_op_compat_ioctl,
|
.compat_ioctl = fw_device_op_compat_ioctl,
|
||||||
#endif
|
#endif
|
||||||
|
Reference in New Issue
Block a user