diff options
author | Arjan van de Ven <arjan@linux.intel.com> | 2011-10-30 06:46:30 +0000 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2011-11-01 17:56:14 -0400 |
commit | 73cb88ecb950ee67906d02354f781ea293bcf895 (patch) | |
tree | fbb4a777410d5a5653537bcd3ee7e954bc9ba5a0 /net/ipv6/udp.c | |
parent | 98f41f694f46085fda475cdee8cc0b6d2c5e6f1f (diff) |
net: make the tcp and udp file_operations for the /proc stuff const
the tcp and udp code creates a set of struct file_operations at runtime
while it can also be done at compile time, with the added benefit of then
having these file operations be const.
the trickiest part was to get the "THIS_MODULE" reference right; the naive
method of declaring a struct in the place of registration would not work
for this reason.
Signed-off-by: Arjan van de Ven <arjan@linux.intel.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'net/ipv6/udp.c')
-rw-r--r-- | net/ipv6/udp.c | 12 |
1 files changed, 9 insertions, 3 deletions
diff --git a/net/ipv6/udp.c b/net/ipv6/udp.c index f4ca0a5b345..846f4757eb8 100644 --- a/net/ipv6/udp.c +++ b/net/ipv6/udp.c @@ -1424,13 +1424,19 @@ int udp6_seq_show(struct seq_file *seq, void *v) return 0; } +static const struct file_operations udp6_afinfo_seq_fops = { + .owner = THIS_MODULE, + .open = udp_seq_open, + .read = seq_read, + .llseek = seq_lseek, + .release = seq_release_net +}; + static struct udp_seq_afinfo udp6_seq_afinfo = { .name = "udp6", .family = AF_INET6, .udp_table = &udp_table, - .seq_fops = { - .owner = THIS_MODULE, - }, + .seq_fops = &udp6_afinfo_seq_fops, .seq_ops = { .show = udp6_seq_show, }, |