Skip to content

Commit

Permalink
---
Browse files Browse the repository at this point in the history
yaml
---
r: 78391
b: refs/heads/master
c: 0a3e78a
h: refs/heads/master
i:
  78389: 76052e8
  78387: 5eeefe2
  78383: f0d870e
v: v3
  • Loading branch information
Daniel Lezcano authored and David S. Miller committed Jan 28, 2008
1 parent 8dbfe23 commit 74ad210
Show file tree
Hide file tree
Showing 4 changed files with 29 additions and 10 deletions.
2 changes: 1 addition & 1 deletion [refs]
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
---
refs/heads/master: 51602b2a5e849babd94311e555bf1ba58151b8d4
refs/heads/master: 0a3e78ac2c555441f5bc00588070058533bc8d6b
2 changes: 1 addition & 1 deletion trunk/include/net/ipv6.h
Original file line number Diff line number Diff line change
Expand Up @@ -219,7 +219,7 @@ extern struct ipv6_txoptions *fl6_merge_options(struct ipv6_txoptions * opt_spac
struct ipv6_txoptions * fopt);
extern void fl6_free_socklist(struct sock *sk);
extern int ipv6_flowlabel_opt(struct sock *sk, char __user *optval, int optlen);
extern void ip6_flowlabel_init(void);
extern int ip6_flowlabel_init(void);
extern void ip6_flowlabel_cleanup(void);

static inline void fl6_sock_release(struct ip6_flowlabel *fl)
Expand Down
5 changes: 4 additions & 1 deletion trunk/net/ipv6/af_inet6.c
Original file line number Diff line number Diff line change
Expand Up @@ -851,7 +851,9 @@ static int __init inet6_init(void)
err = ip6_route_init();
if (err)
goto ip6_route_fail;
ip6_flowlabel_init();
err = ip6_flowlabel_init();
if (err)
goto ip6_flowlabel_fail;
err = addrconf_init();
if (err)
goto addrconf_fail;
Expand All @@ -874,6 +876,7 @@ static int __init inet6_init(void)

addrconf_fail:
ip6_flowlabel_cleanup();
ip6_flowlabel_fail:
ip6_route_cleanup();
ip6_route_fail:
#ifdef CONFIG_PROC_FS
Expand Down
30 changes: 23 additions & 7 deletions trunk/net/ipv6/ip6_flowlabel.c
Original file line number Diff line number Diff line change
Expand Up @@ -692,20 +692,36 @@ static const struct file_operations ip6fl_seq_fops = {
.llseek = seq_lseek,
.release = seq_release_private,
};
#endif

static int ip6_flowlabel_proc_init(struct net *net)
{
if (!proc_net_fops_create(net, "ip6_flowlabel", S_IRUGO, &ip6fl_seq_fops))
return -ENOMEM;
return 0;
}

void ip6_flowlabel_init(void)
static void ip6_flowlabel_proc_fini(struct net *net)
{
#ifdef CONFIG_PROC_FS
proc_net_fops_create(&init_net, "ip6_flowlabel", S_IRUGO, &ip6fl_seq_fops);
proc_net_remove(net, "ip6_flowlabel");
}
#else
static inline int ip6_flowlabel_proc_init(struct net *net)
{
return 0;
}
static inline void ip6_flowlabel_proc_fini(struct net *net)
{
return ;
}
#endif

int ip6_flowlabel_init(void)
{
return ip6_flowlabel_proc_init(&init_net);
}

void ip6_flowlabel_cleanup(void)
{
del_timer(&ip6_fl_gc_timer);
#ifdef CONFIG_PROC_FS
proc_net_remove(&init_net, "ip6_flowlabel");
#endif
ip6_flowlabel_proc_fini(&init_net);
}

0 comments on commit 74ad210

Please sign in to comment.