diff options
| author | Patrick McHardy <kaber@trash.net> | 2010-04-13 05:03:15 +0000 | 
|---|---|---|
| committer | David S. Miller <davem@davemloft.net> | 2010-04-13 14:49:30 -0700 | 
| commit | d8a566beaa75c6ad5e38cdccf0ea5294323e7866 (patch) | |
| tree | 56fc11f0806e9e869e65c44a697c896add4b78f6 /net/core/fib_rules.c | |
| parent | 561155110307ad304226a23272244398fa46cbae (diff) | |
| download | olio-linux-3.10-d8a566beaa75c6ad5e38cdccf0ea5294323e7866.tar.xz olio-linux-3.10-d8a566beaa75c6ad5e38cdccf0ea5294323e7866.zip  | |
net: fib_rules: consolidate IPv4 and DECnet ->default_pref() functions.
Both functions are equivalent, consolidate them since a following patch
needs a third implementation for multicast routing.
Signed-off-by: Patrick McHardy <kaber@trash.net>
Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'net/core/fib_rules.c')
| -rw-r--r-- | net/core/fib_rules.c | 18 | 
1 files changed, 18 insertions, 0 deletions
diff --git a/net/core/fib_rules.c b/net/core/fib_rules.c index 05cce4ec84d..1eb32276be7 100644 --- a/net/core/fib_rules.c +++ b/net/core/fib_rules.c @@ -39,6 +39,24 @@ int fib_default_rule_add(struct fib_rules_ops *ops,  }  EXPORT_SYMBOL(fib_default_rule_add); +u32 fib_default_rule_pref(struct fib_rules_ops *ops) +{ +	struct list_head *pos; +	struct fib_rule *rule; + +	if (!list_empty(&ops->rules_list)) { +		pos = ops->rules_list.next; +		if (pos->next != &ops->rules_list) { +			rule = list_entry(pos->next, struct fib_rule, list); +			if (rule->pref) +				return rule->pref - 1; +		} +	} + +	return 0; +} +EXPORT_SYMBOL(fib_default_rule_pref); +  static void notify_rule_change(int event, struct fib_rule *rule,  			       struct fib_rules_ops *ops, struct nlmsghdr *nlh,  			       u32 pid);  |