diff options
Diffstat (limited to 'net/ipv4/fib_lookup.h')
-rw-r--r-- | net/ipv4/fib_lookup.h | 11 |
1 files changed, 8 insertions, 3 deletions
diff --git a/net/ipv4/fib_lookup.h b/net/ipv4/fib_lookup.h index 637b133973bd..a29edf2219c8 100644 --- a/net/ipv4/fib_lookup.h +++ b/net/ipv4/fib_lookup.h | |||
@@ -12,17 +12,22 @@ struct fib_alias { | |||
12 | u8 fa_type; | 12 | u8 fa_type; |
13 | u8 fa_scope; | 13 | u8 fa_scope; |
14 | u8 fa_state; | 14 | u8 fa_state; |
15 | #ifdef CONFIG_IP_FIB_TRIE | ||
16 | struct rcu_head rcu; | 15 | struct rcu_head rcu; |
17 | #endif | ||
18 | }; | 16 | }; |
19 | 17 | ||
20 | #define FA_S_ACCESSED 0x01 | 18 | #define FA_S_ACCESSED 0x01 |
21 | 19 | ||
20 | /* Dont write on fa_state unless needed, to keep it shared on all cpus */ | ||
21 | static inline void fib_alias_accessed(struct fib_alias *fa) | ||
22 | { | ||
23 | if (!(fa->fa_state & FA_S_ACCESSED)) | ||
24 | fa->fa_state |= FA_S_ACCESSED; | ||
25 | } | ||
26 | |||
22 | /* Exported by fib_semantics.c */ | 27 | /* Exported by fib_semantics.c */ |
23 | extern int fib_semantic_match(struct list_head *head, | 28 | extern int fib_semantic_match(struct list_head *head, |
24 | const struct flowi *flp, | 29 | const struct flowi *flp, |
25 | struct fib_result *res, int prefixlen); | 30 | struct fib_result *res, int prefixlen, int fib_flags); |
26 | extern void fib_release_info(struct fib_info *); | 31 | extern void fib_release_info(struct fib_info *); |
27 | extern struct fib_info *fib_create_info(struct fib_config *cfg); | 32 | extern struct fib_info *fib_create_info(struct fib_config *cfg); |
28 | extern int fib_nh_match(struct fib_config *cfg, struct fib_info *fi); | 33 | extern int fib_nh_match(struct fib_config *cfg, struct fib_info *fi); |