We don't allow to seek in the debugfs socket and log files. Thus we should mark the file descriptor as nonseekable.
Signed-off-by: Sven Eckelmann sven.eckelmann@gmx.de Cc: Arnd Bergmann arnd@arndb.de --- I think it is according to Arnd's patch the cleanest version to say that those files are nonseekable.
batman-adv/bat_debugfs.c | 2 ++ batman-adv/icmp_socket.c | 3 +++ 2 files changed, 5 insertions(+), 0 deletions(-)
diff --git a/batman-adv/bat_debugfs.c b/batman-adv/bat_debugfs.c index c73ce4a..bd4a12e 100644 --- a/batman-adv/bat_debugfs.c +++ b/batman-adv/bat_debugfs.c @@ -93,6 +93,7 @@ int debug_log(struct bat_priv *bat_priv, char *fmt, ...)
static int log_open(struct inode *inode, struct file *file) { + nonseekable_open(inode, file); file->private_data = inode->i_private; inc_module_count(); return 0; @@ -177,6 +178,7 @@ static const struct file_operations log_fops = { .release = log_release, .read = log_read, .poll = log_poll, + .llseek = no_llseek, };
static int debug_log_setup(struct bat_priv *bat_priv) diff --git a/batman-adv/icmp_socket.c b/batman-adv/icmp_socket.c index 85c047b..aa64ff8 100644 --- a/batman-adv/icmp_socket.c +++ b/batman-adv/icmp_socket.c @@ -47,6 +47,8 @@ static int bat_socket_open(struct inode *inode, struct file *file) unsigned int i; struct socket_client *socket_client;
+ nonseekable_open(inode, file); + socket_client = kmalloc(sizeof(struct socket_client), GFP_KERNEL);
if (!socket_client) @@ -285,6 +287,7 @@ static const struct file_operations fops = { .read = bat_socket_read, .write = bat_socket_write, .poll = bat_socket_poll, + .llseek = no_llseek, };
int bat_socket_setup(struct bat_priv *bat_priv)