From d623043315e96aaf3a99e503531e1c98e4b24882 Mon Sep 17 00:00:00 2001 From: "Denis V. Lunev" Date: Thu, 10 Jan 2008 03:52:35 -0800 Subject: [PATCH] --- yaml --- r: 78752 b: refs/heads/master c: ae22120ad846399f6aa19c5b32f8d4c7bd068fd1 h: refs/heads/master v: v3 --- [refs] | 2 +- trunk/net/atm/clip.c | 42 +++++------------------------------------- 2 files changed, 6 insertions(+), 38 deletions(-) diff --git a/[refs] b/[refs] index 764c1f9e75b7..af8450c76a8b 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: e5d69b9f4a6ce17f0d09595da45e37b870fee5ae +refs/heads/master: ae22120ad846399f6aa19c5b32f8d4c7bd068fd1 diff --git a/trunk/net/atm/clip.c b/trunk/net/atm/clip.c index df7d218a6827..45e08620c8ca 100644 --- a/trunk/net/atm/clip.c +++ b/trunk/net/atm/clip.c @@ -903,6 +903,8 @@ static void *clip_seq_sub_iter(struct neigh_seq_state *_state, static void *clip_seq_start(struct seq_file *seq, loff_t * pos) { + struct clip_seq_state *state = seq->private; + state->ns.neigh_sub_iter = clip_seq_sub_iter; return neigh_seq_start(seq, pos, &clip_tbl, NEIGH_SEQ_NEIGH_ONLY); } @@ -932,49 +934,15 @@ static const struct seq_operations arp_seq_ops = { static int arp_seq_open(struct inode *inode, struct file *file) { - struct clip_seq_state *state; - struct seq_file *seq; - int rc = -EAGAIN; - - state = kzalloc(sizeof(*state), GFP_KERNEL); - if (!state) { - rc = -ENOMEM; - goto out_kfree; - } - state->ns.neigh_sub_iter = clip_seq_sub_iter; - - rc = seq_open(file, &arp_seq_ops); - if (rc) - goto out_kfree; - - seq = file->private_data; - seq->private = state; - state->ns.net = get_proc_net(inode); - if (!state->ns.net) { - seq_release_private(inode, file); - rc = -ENXIO; - } -out: - return rc; - -out_kfree: - kfree(state); - goto out; -} - -static int arp_seq_release(struct inode *inode, struct file *file) -{ - struct seq_file *seq = file->private_data; - struct clip_seq_state *state = seq->private; - put_net(state->ns.net); - return seq_release_private(inode, file); + return seq_open_net(inode, file, &arp_seq_ops, + sizeof(struct clip_seq_state)); } static const struct file_operations arp_seq_fops = { .open = arp_seq_open, .read = seq_read, .llseek = seq_lseek, - .release = arp_seq_release, + .release = seq_release_net, .owner = THIS_MODULE }; #endif