From c3506372277779fccbffee2475400fcd689d5738 Mon Sep 17 00:00:00 2001 From: Christoph Hellwig Date: Tue, 10 Apr 2018 19:42:55 +0200 Subject: proc: introduce proc_create_net{,_data} Variants of proc_create{,_data} that directly take a struct seq_operations and deal with network namespaces in ->open and ->release. All callers of proc_create + seq_open_net converted over, and seq_{open,release}_net are removed entirely. Signed-off-by: Christoph Hellwig --- net/rxrpc/ar-internal.h | 4 ++-- net/rxrpc/net_ns.c | 7 +++++-- net/rxrpc/proc.c | 31 ++----------------------------- 3 files changed, 9 insertions(+), 33 deletions(-) (limited to 'net/rxrpc') diff --git a/net/rxrpc/ar-internal.h b/net/rxrpc/ar-internal.h index 19975d2ca9a2..29923ec2189c 100644 --- a/net/rxrpc/ar-internal.h +++ b/net/rxrpc/ar-internal.h @@ -1051,8 +1051,8 @@ void __rxrpc_queue_peer_error(struct rxrpc_peer *); /* * proc.c */ -extern const struct file_operations rxrpc_call_seq_fops; -extern const struct file_operations rxrpc_connection_seq_fops; +extern const struct seq_operations rxrpc_call_seq_ops; +extern const struct seq_operations rxrpc_connection_seq_ops; /* * recvmsg.c diff --git a/net/rxrpc/net_ns.c b/net/rxrpc/net_ns.c index c7a023fb22d0..5d6a773db973 100644 --- a/net/rxrpc/net_ns.c +++ b/net/rxrpc/net_ns.c @@ -97,8 +97,11 @@ static __net_init int rxrpc_init_net(struct net *net) if (!rxnet->proc_net) goto err_proc; - proc_create("calls", 0444, rxnet->proc_net, &rxrpc_call_seq_fops); - proc_create("conns", 0444, rxnet->proc_net, &rxrpc_connection_seq_fops); + proc_create_net("calls", 0444, rxnet->proc_net, &rxrpc_call_seq_ops, + sizeof(struct seq_net_private)); + proc_create_net("conns", 0444, rxnet->proc_net, + &rxrpc_connection_seq_ops, + sizeof(struct seq_net_private)); return 0; err_proc: diff --git a/net/rxrpc/proc.c b/net/rxrpc/proc.c index 7e45db058823..d9fca8c4bcdc 100644 --- a/net/rxrpc/proc.c +++ b/net/rxrpc/proc.c @@ -115,26 +115,13 @@ static int rxrpc_call_seq_show(struct seq_file *seq, void *v) return 0; } -static const struct seq_operations rxrpc_call_seq_ops = { +const struct seq_operations rxrpc_call_seq_ops = { .start = rxrpc_call_seq_start, .next = rxrpc_call_seq_next, .stop = rxrpc_call_seq_stop, .show = rxrpc_call_seq_show, }; -static int rxrpc_call_seq_open(struct inode *inode, struct file *file) -{ - return seq_open_net(inode, file, &rxrpc_call_seq_ops, - sizeof(struct seq_net_private)); -} - -const struct file_operations rxrpc_call_seq_fops = { - .open = rxrpc_call_seq_open, - .read = seq_read, - .llseek = seq_lseek, - .release = seq_release, -}; - /* * generate a list of extant virtual connections in /proc/net/rxrpc_conns */ @@ -207,23 +194,9 @@ print: return 0; } -static const struct seq_operations rxrpc_connection_seq_ops = { +const struct seq_operations rxrpc_connection_seq_ops = { .start = rxrpc_connection_seq_start, .next = rxrpc_connection_seq_next, .stop = rxrpc_connection_seq_stop, .show = rxrpc_connection_seq_show, }; - - -static int rxrpc_connection_seq_open(struct inode *inode, struct file *file) -{ - return seq_open_net(inode, file, &rxrpc_connection_seq_ops, - sizeof(struct seq_net_private)); -} - -const struct file_operations rxrpc_connection_seq_fops = { - .open = rxrpc_connection_seq_open, - .read = seq_read, - .llseek = seq_lseek, - .release = seq_release, -}; -- cgit v1.2.3