From: Christoph Hellwig <hch@lst.de> To: Andrew Morton <akpm@linux-foundation.org>, Alexander Viro <viro@zeniv.linux.org.uk> Cc: linux-rtc@vger.kernel.org, Alessandro Zummo <a.zummo@towertech.it>, Alexandre Belloni <alexandre.belloni@bootlin.com>, devel@driverdev.osuosl.org, linux-kernel@vger.kernel.org, linux-scsi@vger.kernel.org, linux-ide@vger.kernel.org, Greg Kroah-Hartman <gregkh@linuxfoundation.org>, jfs-discussion@lists.sourceforge.net, linux-afs@lists.infradead.org, linux-acpi@vger.kernel.org, netdev@vger.kernel.org, netfilter-devel@vger.kernel.org, Jiri Slaby <jslaby@suse.com>, linux-ext4@vger.kernel.org, Alexey Dobriyan <adobriyan@gmail.com>, megaraidlinux.pdl@broadcom.com, drbd-dev@lists.linbit.com Subject: [PATCH 09/40] ipv{4,6}/ping: simplify proc file creation Date: Wed, 25 Apr 2018 17:47:56 +0200 [thread overview] Message-ID: <20180425154827.32251-10-hch@lst.de> (raw) In-Reply-To: <20180425154827.32251-1-hch@lst.de> Remove the pointless ping_seq_afinfo indirection and make the code look like most other protocols. Signed-off-by: Christoph Hellwig <hch@lst.de> --- include/net/ping.h | 11 ---------- net/ipv4/ping.c | 50 +++++++++++++--------------------------------- net/ipv6/ping.c | 35 +++++++++++++++++++++----------- 3 files changed, 37 insertions(+), 59 deletions(-) diff --git a/include/net/ping.h b/include/net/ping.h index 4cd90d6b5c25..fd080e043a6e 100644 --- a/include/net/ping.h +++ b/include/net/ping.h @@ -83,20 +83,9 @@ int ping_queue_rcv_skb(struct sock *sk, struct sk_buff *skb); bool ping_rcv(struct sk_buff *skb); #ifdef CONFIG_PROC_FS -struct ping_seq_afinfo { - char *name; - sa_family_t family; - const struct file_operations *seq_fops; - const struct seq_operations seq_ops; -}; - -extern const struct file_operations ping_seq_fops; - void *ping_seq_start(struct seq_file *seq, loff_t *pos, sa_family_t family); void *ping_seq_next(struct seq_file *seq, void *v, loff_t *pos); void ping_seq_stop(struct seq_file *seq, void *v); -int ping_proc_register(struct net *net, struct ping_seq_afinfo *afinfo); -void ping_proc_unregister(struct net *net, struct ping_seq_afinfo *afinfo); int __init ping_proc_init(void); void ping_proc_exit(void); diff --git a/net/ipv4/ping.c b/net/ipv4/ping.c index 05e47d777009..83170ebf5dfc 100644 --- a/net/ipv4/ping.c +++ b/net/ipv4/ping.c @@ -1147,58 +1147,36 @@ static int ping_v4_seq_show(struct seq_file *seq, void *v) return 0; } -static int ping_seq_open(struct inode *inode, struct file *file) +static const struct seq_operations ping_v4_seq_ops = { + .start = ping_v4_seq_start, + .show = ping_v4_seq_show, + .next = ping_seq_next, + .stop = ping_seq_stop, +}; + +static int ping_v4_seq_open(struct inode *inode, struct file *file) { - struct ping_seq_afinfo *afinfo = PDE_DATA(inode); - return seq_open_net(inode, file, &afinfo->seq_ops, + return seq_open_net(inode, file, &ping_v4_seq_ops, sizeof(struct ping_iter_state)); } -const struct file_operations ping_seq_fops = { - .open = ping_seq_open, +const struct file_operations ping_v4_seq_fops = { + .open = ping_v4_seq_open, .read = seq_read, .llseek = seq_lseek, .release = seq_release_net, }; -EXPORT_SYMBOL_GPL(ping_seq_fops); - -static struct ping_seq_afinfo ping_v4_seq_afinfo = { - .name = "icmp", - .family = AF_INET, - .seq_fops = &ping_seq_fops, - .seq_ops = { - .start = ping_v4_seq_start, - .show = ping_v4_seq_show, - .next = ping_seq_next, - .stop = ping_seq_stop, - }, -}; -int ping_proc_register(struct net *net, struct ping_seq_afinfo *afinfo) +static int __net_init ping_v4_proc_init_net(struct net *net) { - struct proc_dir_entry *p; - p = proc_create_data(afinfo->name, 0444, net->proc_net, - afinfo->seq_fops, afinfo); - if (!p) + if (!proc_create("icmp", 0444, net->proc_net, &ping_v4_seq_fops)) return -ENOMEM; return 0; } -EXPORT_SYMBOL_GPL(ping_proc_register); - -void ping_proc_unregister(struct net *net, struct ping_seq_afinfo *afinfo) -{ - remove_proc_entry(afinfo->name, net->proc_net); -} -EXPORT_SYMBOL_GPL(ping_proc_unregister); - -static int __net_init ping_v4_proc_init_net(struct net *net) -{ - return ping_proc_register(net, &ping_v4_seq_afinfo); -} static void __net_exit ping_v4_proc_exit_net(struct net *net) { - ping_proc_unregister(net, &ping_v4_seq_afinfo); + remove_proc_entry("icmp", net->proc_net); } static struct pernet_operations ping_v4_net_ops = { diff --git a/net/ipv6/ping.c b/net/ipv6/ping.c index 746eeae7f581..45d5c8e0f2bf 100644 --- a/net/ipv6/ping.c +++ b/net/ipv6/ping.c @@ -24,6 +24,7 @@ #include <net/protocol.h> #include <net/udp.h> #include <net/transp_v6.h> +#include <linux/proc_fs.h> #include <net/ping.h> /* Compatibility glue so we can support IPv6 when it's compiled as a module */ @@ -215,26 +216,36 @@ static int ping_v6_seq_show(struct seq_file *seq, void *v) return 0; } -static struct ping_seq_afinfo ping_v6_seq_afinfo = { - .name = "icmp6", - .family = AF_INET6, - .seq_fops = &ping_seq_fops, - .seq_ops = { - .start = ping_v6_seq_start, - .show = ping_v6_seq_show, - .next = ping_seq_next, - .stop = ping_seq_stop, - }, +static const struct seq_operations ping_v6_seq_ops = { + .start = ping_v6_seq_start, + .show = ping_v6_seq_show, + .next = ping_seq_next, + .stop = ping_seq_stop, +}; + +static int ping_v6_seq_open(struct inode *inode, struct file *file) +{ + return seq_open_net(inode, file, &ping_v6_seq_ops, + sizeof(struct ping_iter_state)); +} + +const struct file_operations ping_v6_seq_fops = { + .open = ping_v6_seq_open, + .read = seq_read, + .llseek = seq_lseek, + .release = seq_release_net, }; static int __net_init ping_v6_proc_init_net(struct net *net) { - return ping_proc_register(net, &ping_v6_seq_afinfo); + if (!proc_create("icmp6", 0444, net->proc_net, &ping_v6_seq_fops)) + return -ENOMEM; + return 0; } static void __net_init ping_v6_proc_exit_net(struct net *net) { - return ping_proc_unregister(net, &ping_v6_seq_afinfo); + remove_proc_entry("icmp6", net->proc_net); } static struct pernet_operations ping_v6_net_ops = { -- 2.17.0
WARNING: multiple messages have this Message-ID (diff)
From: Christoph Hellwig <hch@lst.de> To: Andrew Morton <akpm@linux-foundation.org>, Alexander Viro <viro@zeniv.linux.org.uk> Cc: Alexey Dobriyan <adobriyan@gmail.com>, Greg Kroah-Hartman <gregkh@linuxfoundation.org>, Jiri Slaby <jslaby@suse.com>, Alessandro Zummo <a.zummo@towertech.it>, Alexandre Belloni <alexandre.belloni@bootlin.com>, linux-acpi@vger.kernel.org, drbd-dev@lists.linbit.com, linux-ide@vger.kernel.org, netdev@vger.kernel.org, linux-rtc@vger.kernel.org, megaraidlinux.pdl@broadcom.com, linux-scsi@vger.kernel.org, devel@driverdev.osuosl.org, linux-afs@lists.infradead.org, linux-ext4@vger.kernel.org, jfs-discussion@lists.sourceforge.net, netfilter-devel@vger.kernel.org, linux-kernel@vger.kernel.org Subject: [PATCH 09/40] ipv{4,6}/ping: simplify proc file creation Date: Wed, 25 Apr 2018 17:47:56 +0200 [thread overview] Message-ID: <20180425154827.32251-10-hch@lst.de> (raw) In-Reply-To: <20180425154827.32251-1-hch@lst.de> Remove the pointless ping_seq_afinfo indirection and make the code look like most other protocols. Signed-off-by: Christoph Hellwig <hch@lst.de> --- include/net/ping.h | 11 ---------- net/ipv4/ping.c | 50 +++++++++++++--------------------------------- net/ipv6/ping.c | 35 +++++++++++++++++++++----------- 3 files changed, 37 insertions(+), 59 deletions(-) diff --git a/include/net/ping.h b/include/net/ping.h index 4cd90d6b5c25..fd080e043a6e 100644 --- a/include/net/ping.h +++ b/include/net/ping.h @@ -83,20 +83,9 @@ int ping_queue_rcv_skb(struct sock *sk, struct sk_buff *skb); bool ping_rcv(struct sk_buff *skb); #ifdef CONFIG_PROC_FS -struct ping_seq_afinfo { - char *name; - sa_family_t family; - const struct file_operations *seq_fops; - const struct seq_operations seq_ops; -}; - -extern const struct file_operations ping_seq_fops; - void *ping_seq_start(struct seq_file *seq, loff_t *pos, sa_family_t family); void *ping_seq_next(struct seq_file *seq, void *v, loff_t *pos); void ping_seq_stop(struct seq_file *seq, void *v); -int ping_proc_register(struct net *net, struct ping_seq_afinfo *afinfo); -void ping_proc_unregister(struct net *net, struct ping_seq_afinfo *afinfo); int __init ping_proc_init(void); void ping_proc_exit(void); diff --git a/net/ipv4/ping.c b/net/ipv4/ping.c index 05e47d777009..83170ebf5dfc 100644 --- a/net/ipv4/ping.c +++ b/net/ipv4/ping.c @@ -1147,58 +1147,36 @@ static int ping_v4_seq_show(struct seq_file *seq, void *v) return 0; } -static int ping_seq_open(struct inode *inode, struct file *file) +static const struct seq_operations ping_v4_seq_ops = { + .start = ping_v4_seq_start, + .show = ping_v4_seq_show, + .next = ping_seq_next, + .stop = ping_seq_stop, +}; + +static int ping_v4_seq_open(struct inode *inode, struct file *file) { - struct ping_seq_afinfo *afinfo = PDE_DATA(inode); - return seq_open_net(inode, file, &afinfo->seq_ops, + return seq_open_net(inode, file, &ping_v4_seq_ops, sizeof(struct ping_iter_state)); } -const struct file_operations ping_seq_fops = { - .open = ping_seq_open, +const struct file_operations ping_v4_seq_fops = { + .open = ping_v4_seq_open, .read = seq_read, .llseek = seq_lseek, .release = seq_release_net, }; -EXPORT_SYMBOL_GPL(ping_seq_fops); - -static struct ping_seq_afinfo ping_v4_seq_afinfo = { - .name = "icmp", - .family = AF_INET, - .seq_fops = &ping_seq_fops, - .seq_ops = { - .start = ping_v4_seq_start, - .show = ping_v4_seq_show, - .next = ping_seq_next, - .stop = ping_seq_stop, - }, -}; -int ping_proc_register(struct net *net, struct ping_seq_afinfo *afinfo) +static int __net_init ping_v4_proc_init_net(struct net *net) { - struct proc_dir_entry *p; - p = proc_create_data(afinfo->name, 0444, net->proc_net, - afinfo->seq_fops, afinfo); - if (!p) + if (!proc_create("icmp", 0444, net->proc_net, &ping_v4_seq_fops)) return -ENOMEM; return 0; } -EXPORT_SYMBOL_GPL(ping_proc_register); - -void ping_proc_unregister(struct net *net, struct ping_seq_afinfo *afinfo) -{ - remove_proc_entry(afinfo->name, net->proc_net); -} -EXPORT_SYMBOL_GPL(ping_proc_unregister); - -static int __net_init ping_v4_proc_init_net(struct net *net) -{ - return ping_proc_register(net, &ping_v4_seq_afinfo); -} static void __net_exit ping_v4_proc_exit_net(struct net *net) { - ping_proc_unregister(net, &ping_v4_seq_afinfo); + remove_proc_entry("icmp", net->proc_net); } static struct pernet_operations ping_v4_net_ops = { diff --git a/net/ipv6/ping.c b/net/ipv6/ping.c index 746eeae7f581..45d5c8e0f2bf 100644 --- a/net/ipv6/ping.c +++ b/net/ipv6/ping.c @@ -24,6 +24,7 @@ #include <net/protocol.h> #include <net/udp.h> #include <net/transp_v6.h> +#include <linux/proc_fs.h> #include <net/ping.h> /* Compatibility glue so we can support IPv6 when it's compiled as a module */ @@ -215,26 +216,36 @@ static int ping_v6_seq_show(struct seq_file *seq, void *v) return 0; } -static struct ping_seq_afinfo ping_v6_seq_afinfo = { - .name = "icmp6", - .family = AF_INET6, - .seq_fops = &ping_seq_fops, - .seq_ops = { - .start = ping_v6_seq_start, - .show = ping_v6_seq_show, - .next = ping_seq_next, - .stop = ping_seq_stop, - }, +static const struct seq_operations ping_v6_seq_ops = { + .start = ping_v6_seq_start, + .show = ping_v6_seq_show, + .next = ping_seq_next, + .stop = ping_seq_stop, +}; + +static int ping_v6_seq_open(struct inode *inode, struct file *file) +{ + return seq_open_net(inode, file, &ping_v6_seq_ops, + sizeof(struct ping_iter_state)); +} + +const struct file_operations ping_v6_seq_fops = { + .open = ping_v6_seq_open, + .read = seq_read, + .llseek = seq_lseek, + .release = seq_release_net, }; static int __net_init ping_v6_proc_init_net(struct net *net) { - return ping_proc_register(net, &ping_v6_seq_afinfo); + if (!proc_create("icmp6", 0444, net->proc_net, &ping_v6_seq_fops)) + return -ENOMEM; + return 0; } static void __net_init ping_v6_proc_exit_net(struct net *net) { - return ping_proc_unregister(net, &ping_v6_seq_afinfo); + remove_proc_entry("icmp6", net->proc_net); } static struct pernet_operations ping_v6_net_ops = { -- 2.17.0
next prev parent reply other threads:[~2018-04-25 15:47 UTC|newest] Thread overview: 170+ messages / expand[flat|nested] mbox.gz Atom feed top 2018-04-25 15:47 simplify procfs code for seq_file instances V2 Christoph Hellwig 2018-04-25 15:47 ` Christoph Hellwig 2018-04-25 15:47 ` Christoph Hellwig 2018-04-25 15:47 ` [PATCH 01/40] net/can: single_open_net needs to be paired with single_release_net Christoph Hellwig 2018-04-25 15:47 ` Christoph Hellwig 2018-04-25 15:47 ` [PATCH 02/40] proc: simplify proc_register calling conventions Christoph Hellwig 2018-04-25 15:47 ` Christoph Hellwig 2018-04-25 15:47 ` Christoph Hellwig 2018-04-25 15:47 ` [PATCH 03/40] proc: add a proc_create_reg helper Christoph Hellwig 2018-04-25 15:47 ` Christoph Hellwig 2018-04-25 15:47 ` Christoph Hellwig 2018-04-25 15:47 ` [PATCH 04/40] proc: introduce proc_create_seq{,_data} Christoph Hellwig 2018-04-25 15:47 ` Christoph Hellwig 2018-04-25 15:47 ` [PATCH 05/40] proc: introduce proc_create_seq_private Christoph Hellwig 2018-04-25 15:47 ` Christoph Hellwig 2018-04-25 15:47 ` Christoph Hellwig 2018-04-25 15:47 ` [PATCH 06/40] proc: introduce proc_create_single{,_data} Christoph Hellwig 2018-04-26 1:45 ` Finn Thain 2018-04-26 1:45 ` Finn Thain [not found] ` <alpine.LNX.2.21.1804261118050.8-i19888lE8tflDoPlx7XIcw@public.gmane.org> 2018-05-15 13:58 ` [PATCH 06/40] proc: introduce proc_create_single{, _data} Christoph Hellwig 2018-05-15 13:58 ` [PATCH 06/40] proc: introduce proc_create_single{,_data} Christoph Hellwig 2018-05-15 13:58 ` Christoph Hellwig 2018-04-25 15:47 ` [PATCH 07/40] ipv{4,6}/udp{,lite}: simplify proc registration Christoph Hellwig 2018-04-25 15:47 ` Christoph Hellwig 2018-04-25 15:47 ` Christoph Hellwig 2018-04-25 15:47 ` [PATCH 08/40] ipv{4,6}/tcp: simplify procfs registration Christoph Hellwig 2018-04-25 15:47 ` Christoph Hellwig 2018-04-25 15:47 ` Christoph Hellwig [this message] 2018-04-25 15:47 ` [PATCH 09/40] ipv{4,6}/ping: simplify proc file creation Christoph Hellwig 2018-04-25 15:47 ` [PATCH 10/40] ipv{4, 6}/raw: simplify ѕeq_file code Christoph Hellwig 2018-04-25 15:47 ` [PATCH 10/40] ipv{4,6}/raw: " Christoph Hellwig 2018-04-25 15:47 ` [PATCH 10/40] ipv{4, 6}/raw: " Christoph Hellwig 2018-04-25 15:47 ` [PATCH 11/40] ipv6/flowlabel: simplify pid namespace lookup Christoph Hellwig 2018-04-25 15:47 ` Christoph Hellwig 2018-05-05 12:37 ` Eric W. Biederman 2018-05-05 12:37 ` Eric W. Biederman [not found] ` <878t8y46sy.fsf-aS9lmoZGLiVWk0Htik3J/w@public.gmane.org> 2018-05-15 14:56 ` Christoph Hellwig 2018-05-15 14:56 ` Christoph Hellwig 2018-05-15 14:56 ` Christoph Hellwig 2018-05-17 5:28 ` Eric W. Biederman 2018-05-17 5:28 ` Eric W. Biederman 2018-05-17 5:28 ` Eric W. Biederman [not found] ` <871seakg0u.fsf-aS9lmoZGLiVWk0Htik3J/w@public.gmane.org> 2018-05-17 6:42 ` Christoph Hellwig 2018-05-17 6:42 ` Christoph Hellwig 2018-05-17 6:42 ` Christoph Hellwig 2018-05-17 19:14 ` Eric W. Biederman 2018-05-17 19:14 ` Eric W. Biederman 2018-04-25 15:47 ` [PATCH 12/40] net/kcm: simplify proc registration Christoph Hellwig 2018-04-25 15:47 ` Christoph Hellwig 2018-04-25 15:48 ` [PATCH 13/40] netfilter/x_tables: simplify ѕeq_file code Christoph Hellwig 2018-04-25 15:48 ` Christoph Hellwig 2018-04-25 15:48 ` Christoph Hellwig 2018-04-25 15:48 ` [PATCH 14/40] net: move seq_file_single_net to <linux/seq_file_net.h> Christoph Hellwig 2018-04-25 15:48 ` Christoph Hellwig 2018-04-25 15:48 ` [PATCH 15/40] proc: introduce proc_create_net{,_data} Christoph Hellwig 2018-04-25 15:48 ` Christoph Hellwig 2018-04-25 15:48 ` Christoph Hellwig 2018-04-25 15:48 ` [PATCH 16/40] proc: introduce proc_create_net_single Christoph Hellwig 2018-04-25 15:48 ` Christoph Hellwig 2018-04-25 15:48 ` Christoph Hellwig 2018-04-25 15:48 ` [PATCH 17/40] acpi/battery: simplify procfs code Christoph Hellwig 2018-04-25 15:48 ` Christoph Hellwig 2018-04-25 15:48 ` Christoph Hellwig 2018-04-25 15:48 ` [PATCH 18/40] sgi-gru: " Christoph Hellwig 2018-04-25 15:48 ` Christoph Hellwig 2018-04-25 15:48 ` Christoph Hellwig 2018-04-25 15:48 ` [PATCH 19/40] megaraid: " Christoph Hellwig 2018-04-25 15:48 ` Christoph Hellwig 2018-04-25 15:48 ` Christoph Hellwig 2018-04-25 15:48 ` [PATCH 20/40] sg: " Christoph Hellwig 2018-04-25 15:48 ` Christoph Hellwig 2018-04-25 15:48 ` Christoph Hellwig 2018-04-25 15:48 ` [PATCH 21/40] afs: " Christoph Hellwig 2018-04-25 15:48 ` Christoph Hellwig 2018-04-25 15:48 ` Christoph Hellwig 2018-04-30 23:20 ` [PATCH 0/3] afs: Network-namespacing and proc David Howells 2018-04-30 23:20 ` [PATCH 1/3] afs: Rearrange fs/afs/proc.c David Howells 2018-05-15 13:43 ` Christoph Hellwig 2018-04-30 23:20 ` [PATCH 2/3] proc: Add a way to make network proc files writable David Howells 2018-05-15 13:48 ` Christoph Hellwig 2018-05-15 14:16 ` David Howells 2018-04-30 23:20 ` [PATCH 3/3] afs: Implement namespacing David Howells 2018-05-15 13:53 ` Christoph Hellwig 2018-05-15 14:28 ` 'Adding' a writable proc file under /proc/net/afs/ [was [PATCH 3/3] afs: Implement namespacing] David Howells 2018-04-25 15:48 ` [PATCH 22/40] ext4: simplify procfs code Christoph Hellwig 2018-04-25 15:48 ` Christoph Hellwig 2018-04-25 15:48 ` Christoph Hellwig 2018-04-25 15:48 ` [PATCH 23/40] jfs: " Christoph Hellwig 2018-04-25 15:48 ` Christoph Hellwig 2018-04-25 15:48 ` Christoph Hellwig 2018-04-25 15:48 ` [PATCH 24/40] staging/rtl8192u: " Christoph Hellwig 2018-04-25 15:48 ` Christoph Hellwig 2018-04-25 15:48 ` Christoph Hellwig 2018-04-25 15:48 ` [PATCH 25/40] resource: switch to proc_create_seq_data Christoph Hellwig 2018-04-25 15:48 ` Christoph Hellwig 2018-04-25 15:48 ` Christoph Hellwig 2018-04-25 15:48 ` [PATCH 26/40] drbd: switch to proc_create_single Christoph Hellwig 2018-04-25 15:48 ` Christoph Hellwig 2018-04-25 15:48 ` Christoph Hellwig 2018-04-25 15:48 ` [PATCH 27/40] rtc/proc: switch to proc_create_single_data Christoph Hellwig 2018-04-25 15:48 ` Christoph Hellwig 2018-04-25 15:48 ` Christoph Hellwig 2018-04-25 18:25 ` Alexandre Belloni 2018-04-25 18:25 ` Alexandre Belloni 2018-04-25 18:25 ` Alexandre Belloni 2018-04-25 15:48 ` [PATCH 28/40] bonding: switch to proc_create_seq_data Christoph Hellwig 2018-04-25 15:48 ` Christoph Hellwig 2018-04-25 15:48 ` Christoph Hellwig 2018-04-25 15:48 ` [PATCH 29/40] hostap: switch to proc_create_{seq,single}_data Christoph Hellwig 2018-04-25 15:48 ` Christoph Hellwig 2018-04-25 15:48 ` Christoph Hellwig 2018-04-25 15:48 ` [PATCH 30/40] neigh: switch to proc_create_seq_data Christoph Hellwig 2018-04-25 15:48 ` Christoph Hellwig 2018-04-25 15:48 ` Christoph Hellwig 2018-04-25 15:48 ` [PATCH 31/40] netfilter/xt_hashlimit: switch to proc_create_{seq, single}_data Christoph Hellwig 2018-04-25 15:48 ` [PATCH 31/40] netfilter/xt_hashlimit: switch to proc_create_{seq,single}_data Christoph Hellwig 2018-04-25 15:48 ` [PATCH 31/40] netfilter/xt_hashlimit: switch to proc_create_{seq, single}_data Christoph Hellwig 2018-04-25 15:48 ` [PATCH 32/40] netfilter/x_tables: switch to proc_create_seq_private Christoph Hellwig 2018-04-25 15:48 ` Christoph Hellwig 2018-04-25 15:48 ` Christoph Hellwig 2018-04-25 15:48 ` [PATCH 33/40] bluetooth: switch to proc_create_seq_data Christoph Hellwig 2018-04-25 15:48 ` Christoph Hellwig 2018-04-25 15:48 ` Christoph Hellwig 2018-04-25 15:48 ` [PATCH 34/40] atm: simplify procfs code Christoph Hellwig 2018-04-25 15:48 ` Christoph Hellwig 2018-04-25 15:48 ` Christoph Hellwig 2018-05-05 12:51 ` Eric W. Biederman 2018-05-05 12:51 ` Eric W. Biederman 2018-05-05 12:51 ` Eric W. Biederman [not found] ` <87r2mq2rll.fsf-aS9lmoZGLiVWk0Htik3J/w@public.gmane.org> 2018-05-15 14:12 ` Christoph Hellwig 2018-05-15 14:12 ` Christoph Hellwig 2018-05-15 14:12 ` Christoph Hellwig 2018-05-17 1:15 ` Eric W. Biederman 2018-05-17 1:15 ` Eric W. Biederman 2018-04-25 15:48 ` [PATCH 35/40] atm: switch to proc_create_seq_private Christoph Hellwig 2018-04-25 15:48 ` Christoph Hellwig 2018-04-25 15:48 ` Christoph Hellwig 2018-04-25 15:48 ` [PATCH 36/40] isdn: replace ->proc_fops with ->proc_show Christoph Hellwig 2018-04-25 15:48 ` Christoph Hellwig 2018-04-25 15:48 ` Christoph Hellwig 2018-04-25 15:48 ` [PATCH 37/40] proc: don't detour through seq->private to get the inode Christoph Hellwig 2018-04-25 15:48 ` Christoph Hellwig 2018-04-25 15:48 ` Christoph Hellwig 2018-04-25 15:48 ` [PATCH 38/40] ide: remove ide_driver_proc_write Christoph Hellwig 2018-04-25 15:48 ` Christoph Hellwig 2018-04-25 15:48 ` Christoph Hellwig 2018-05-05 13:09 ` Eric W. Biederman 2018-05-05 13:09 ` Eric W. Biederman 2018-05-05 13:09 ` Eric W. Biederman 2018-04-25 15:48 ` [PATCH 39/40] ide: replace ->proc_fops with ->proc_show Christoph Hellwig 2018-04-25 15:48 ` Christoph Hellwig 2018-04-25 15:48 ` Christoph Hellwig 2018-04-25 15:48 ` [PATCH 40/40] tty: " Christoph Hellwig 2018-04-25 15:48 ` Christoph Hellwig 2018-04-25 15:48 ` Christoph Hellwig 2018-04-30 13:19 ` [PATCH 04/40] proc: introduce proc_create_seq{,_data} David Howells 2018-04-30 13:19 ` David Howells 2018-04-30 13:19 ` David Howells [not found] ` <26540.1525094365-S6HVgzuS8uM4Awkfq6JHfwNdhmdF6hFW@public.gmane.org> 2018-05-15 14:42 ` [PATCH 04/40] proc: introduce proc_create_seq{, _data} Christoph Hellwig 2018-05-15 14:42 ` [PATCH 04/40] proc: introduce proc_create_seq{,_data} Christoph Hellwig 2018-04-30 15:38 ` simplify procfs code for seq_file instances V2 David Howells 2018-05-06 17:19 ` Alexey Dobriyan 2018-05-06 17:19 ` Alexey Dobriyan 2018-05-06 17:19 ` Alexey Dobriyan 2018-05-06 17:45 ` Al Viro 2018-05-09 16:53 ` Alexey Dobriyan 2018-05-09 16:53 ` Alexey Dobriyan 2018-05-15 14:03 ` Christoph Hellwig 2018-05-15 14:03 ` Christoph Hellwig 2018-05-15 14:03 ` Christoph Hellwig
Reply instructions: You may reply publicly to this message via plain-text email using any one of the following methods: * Save the following mbox file, import it into your mail client, and reply-to-all from there: mbox Avoid top-posting and favor interleaved quoting: https://en.wikipedia.org/wiki/Posting_style#Interleaved_style * Reply using the --to, --cc, and --in-reply-to switches of git-send-email(1): git send-email \ --in-reply-to=20180425154827.32251-10-hch@lst.de \ --to=hch@lst.de \ --cc=a.zummo@towertech.it \ --cc=adobriyan@gmail.com \ --cc=akpm@linux-foundation.org \ --cc=alexandre.belloni@bootlin.com \ --cc=devel@driverdev.osuosl.org \ --cc=drbd-dev@lists.linbit.com \ --cc=gregkh@linuxfoundation.org \ --cc=jfs-discussion@lists.sourceforge.net \ --cc=jslaby@suse.com \ --cc=linux-acpi@vger.kernel.org \ --cc=linux-afs@lists.infradead.org \ --cc=linux-ext4@vger.kernel.org \ --cc=linux-ide@vger.kernel.org \ --cc=linux-kernel@vger.kernel.org \ --cc=linux-rtc@vger.kernel.org \ --cc=linux-scsi@vger.kernel.org \ --cc=megaraidlinux.pdl@broadcom.com \ --cc=netdev@vger.kernel.org \ --cc=netfilter-devel@vger.kernel.org \ --cc=viro@zeniv.linux.org.uk \ /path/to/YOUR_REPLY https://kernel.org/pub/software/scm/git/docs/git-send-email.html * If your mail client supports setting the In-Reply-To header via mailto: links, try the mailto: linkBe sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes, see mirroring instructions on how to clone and mirror all data and code used by this external index.