diff options
author | Alexey Dobriyan <adobriyan@gmail.com> | 2010-01-22 16:21:18 -0500 |
---|---|---|
committer | Patrick McHardy <kaber@trash.net> | 2010-01-22 16:21:18 -0500 |
commit | 477781477a88f60c89003c852def4aedc6f78101 (patch) | |
tree | 1d2aed89aa2e1662092b40c0d5918a7bb4523aa7 /net/ipv4 | |
parent | 7c070aa947d1a4105742378579c267f6e7fd08a1 (diff) |
netfiltr: ipt_CLUSTERIP: simplify seq_file codeA
Pass "struct clusterip_config" itself to seq_file iterators
and save one dereference. Proc entry itself isn't interesting.
Signed-off-by: Alexey Dobriyan <adobriyan@gmail.com>
Signed-off-by: Patrick McHardy <kaber@trash.net>
Diffstat (limited to 'net/ipv4')
-rw-r--r-- | net/ipv4/netfilter/ipt_CLUSTERIP.c | 14 |
1 files changed, 5 insertions, 9 deletions
diff --git a/net/ipv4/netfilter/ipt_CLUSTERIP.c b/net/ipv4/netfilter/ipt_CLUSTERIP.c index 40ca2d240abb..0886f96c736b 100644 --- a/net/ipv4/netfilter/ipt_CLUSTERIP.c +++ b/net/ipv4/netfilter/ipt_CLUSTERIP.c | |||
@@ -560,8 +560,7 @@ struct clusterip_seq_position { | |||
560 | 560 | ||
561 | static void *clusterip_seq_start(struct seq_file *s, loff_t *pos) | 561 | static void *clusterip_seq_start(struct seq_file *s, loff_t *pos) |
562 | { | 562 | { |
563 | const struct proc_dir_entry *pde = s->private; | 563 | struct clusterip_config *c = s->private; |
564 | struct clusterip_config *c = pde->data; | ||
565 | unsigned int weight; | 564 | unsigned int weight; |
566 | u_int32_t local_nodes; | 565 | u_int32_t local_nodes; |
567 | struct clusterip_seq_position *idx; | 566 | struct clusterip_seq_position *idx; |
@@ -632,10 +631,9 @@ static int clusterip_proc_open(struct inode *inode, struct file *file) | |||
632 | 631 | ||
633 | if (!ret) { | 632 | if (!ret) { |
634 | struct seq_file *sf = file->private_data; | 633 | struct seq_file *sf = file->private_data; |
635 | struct proc_dir_entry *pde = PDE(inode); | 634 | struct clusterip_config *c = PDE(inode)->data; |
636 | struct clusterip_config *c = pde->data; | ||
637 | 635 | ||
638 | sf->private = pde; | 636 | sf->private = c; |
639 | 637 | ||
640 | clusterip_config_get(c); | 638 | clusterip_config_get(c); |
641 | } | 639 | } |
@@ -645,8 +643,7 @@ static int clusterip_proc_open(struct inode *inode, struct file *file) | |||
645 | 643 | ||
646 | static int clusterip_proc_release(struct inode *inode, struct file *file) | 644 | static int clusterip_proc_release(struct inode *inode, struct file *file) |
647 | { | 645 | { |
648 | struct proc_dir_entry *pde = PDE(inode); | 646 | struct clusterip_config *c = PDE(inode)->data; |
649 | struct clusterip_config *c = pde->data; | ||
650 | int ret; | 647 | int ret; |
651 | 648 | ||
652 | ret = seq_release(inode, file); | 649 | ret = seq_release(inode, file); |
@@ -660,10 +657,9 @@ static int clusterip_proc_release(struct inode *inode, struct file *file) | |||
660 | static ssize_t clusterip_proc_write(struct file *file, const char __user *input, | 657 | static ssize_t clusterip_proc_write(struct file *file, const char __user *input, |
661 | size_t size, loff_t *ofs) | 658 | size_t size, loff_t *ofs) |
662 | { | 659 | { |
660 | struct clusterip_config *c = PDE(file->f_path.dentry->d_inode)->data; | ||
663 | #define PROC_WRITELEN 10 | 661 | #define PROC_WRITELEN 10 |
664 | char buffer[PROC_WRITELEN+1]; | 662 | char buffer[PROC_WRITELEN+1]; |
665 | const struct proc_dir_entry *pde = PDE(file->f_path.dentry->d_inode); | ||
666 | struct clusterip_config *c = pde->data; | ||
667 | unsigned long nodenum; | 663 | unsigned long nodenum; |
668 | 664 | ||
669 | if (copy_from_user(buffer, input, PROC_WRITELEN)) | 665 | if (copy_from_user(buffer, input, PROC_WRITELEN)) |