mirror of
https://github.com/BobTheBlinker/android_kernel_motorola_sm6375.git
synced 2026-10-24 13:44:26 -04:00
netns xfrm: add struct xfrm_state::xs_net
To avoid unnecessary complications with passing netns around. * set once, very early after allocating * once set, never changes For a while create every xfrm_state in init_net. Signed-off-by: Alexey Dobriyan <adobriyan@gmail.com> Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
parent
d62ddc21b6
commit
673c09be45
6 changed files with 19 additions and 10 deletions
|
|
@ -130,6 +130,9 @@ struct xfrm_state_walk {
|
|||
/* Full description of state of transformer. */
|
||||
struct xfrm_state
|
||||
{
|
||||
#ifdef CONFIG_NET_NS
|
||||
struct net *xs_net;
|
||||
#endif
|
||||
union {
|
||||
struct hlist_node gclist;
|
||||
struct hlist_node bydst;
|
||||
|
|
@ -223,6 +226,11 @@ struct xfrm_state
|
|||
void *data;
|
||||
};
|
||||
|
||||
static inline struct net *xs_net(struct xfrm_state *x)
|
||||
{
|
||||
return read_pnet(&x->xs_net);
|
||||
}
|
||||
|
||||
/* xflags - make enum if more show up */
|
||||
#define XFRM_TIME_DEFER 1
|
||||
|
||||
|
|
@ -1296,7 +1304,7 @@ extern void xfrm_state_walk_init(struct xfrm_state_walk *walk, u8 proto);
|
|||
extern int xfrm_state_walk(struct xfrm_state_walk *walk,
|
||||
int (*func)(struct xfrm_state *, int, void*), void *);
|
||||
extern void xfrm_state_walk_done(struct xfrm_state_walk *walk);
|
||||
extern struct xfrm_state *xfrm_state_alloc(void);
|
||||
extern struct xfrm_state *xfrm_state_alloc(struct net *net);
|
||||
extern struct xfrm_state *xfrm_state_find(xfrm_address_t *daddr, xfrm_address_t *saddr,
|
||||
struct flowi *fl, struct xfrm_tmpl *tmpl,
|
||||
struct xfrm_policy *pol, int *err,
|
||||
|
|
|
|||
Loading…
Reference in a new issue