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 <[email protected]>
Cc: Arnd Bergmann <[email protected]>
---
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)
-- 
1.7.2.3

Reply via email to