inetpeer.h (c1864cfb80a64933c221e33fed9611356c031944) | inetpeer.h (c8a627ed06d6d49bf65015a2185c519335c4c83f) |
---|---|
1/* 2 * INETPEER - A storage for permanent information about peers 3 * 4 * Authors: Andrey V. Savochkin <saw@msu.ru> 5 */ 6 7#ifndef _NET_INETPEER_H 8#define _NET_INETPEER_H --- 61 unchanged lines hidden (view full) --- 70#define INETPEER_METRICS_NEW (~(u32) 0) 71 72static inline bool inet_metrics_new(const struct inet_peer *p) 73{ 74 return p->metrics[RTAX_LOCK-1] == INETPEER_METRICS_NEW; 75} 76 77/* can be called with or without local BH being disabled */ | 1/* 2 * INETPEER - A storage for permanent information about peers 3 * 4 * Authors: Andrey V. Savochkin <saw@msu.ru> 5 */ 6 7#ifndef _NET_INETPEER_H 8#define _NET_INETPEER_H --- 61 unchanged lines hidden (view full) --- 70#define INETPEER_METRICS_NEW (~(u32) 0) 71 72static inline bool inet_metrics_new(const struct inet_peer *p) 73{ 74 return p->metrics[RTAX_LOCK-1] == INETPEER_METRICS_NEW; 75} 76 77/* can be called with or without local BH being disabled */ |
78struct inet_peer *inet_getpeer(const struct inetpeer_addr *daddr, int create); | 78struct inet_peer *inet_getpeer(struct net *net, 79 const struct inetpeer_addr *daddr, 80 int create); |
79 80static inline struct inet_peer *inet_getpeer_v4(__be32 v4daddr, int create) 81{ 82 struct inetpeer_addr daddr; 83 84 daddr.addr.a4 = v4daddr; 85 daddr.family = AF_INET; | 81 82static inline struct inet_peer *inet_getpeer_v4(__be32 v4daddr, int create) 83{ 84 struct inetpeer_addr daddr; 85 86 daddr.addr.a4 = v4daddr; 87 daddr.family = AF_INET; |
86 return inet_getpeer(&daddr, create); | 88 return inet_getpeer(&init_net, &daddr, create); |
87} 88 89static inline struct inet_peer *inet_getpeer_v6(const struct in6_addr *v6daddr, int create) 90{ 91 struct inetpeer_addr daddr; 92 93 *(struct in6_addr *)daddr.addr.a6 = *v6daddr; 94 daddr.family = AF_INET6; | 89} 90 91static inline struct inet_peer *inet_getpeer_v6(const struct in6_addr *v6daddr, int create) 92{ 93 struct inetpeer_addr daddr; 94 95 *(struct in6_addr *)daddr.addr.a6 = *v6daddr; 96 daddr.family = AF_INET6; |
95 return inet_getpeer(&daddr, create); | 97 return inet_getpeer(&init_net, &daddr, create); |
96} 97 98/* can be called from BH context or outside */ 99extern void inet_putpeer(struct inet_peer *p); 100extern bool inet_peer_xrlim_allow(struct inet_peer *peer, int timeout); 101 | 98} 99 100/* can be called from BH context or outside */ 101extern void inet_putpeer(struct inet_peer *p); 102extern bool inet_peer_xrlim_allow(struct inet_peer *peer, int timeout); 103 |
102extern void inetpeer_invalidate_tree(int family); | 104extern void inetpeer_invalidate_tree(struct net *net, int family); |
103 104/* 105 * temporary check to make sure we dont access rid, ip_id_count, tcp_ts, 106 * tcp_ts_stamp if no refcount is taken on inet_peer 107 */ 108static inline void inet_peer_refcheck(const struct inet_peer *p) 109{ 110 WARN_ON_ONCE(atomic_read(&p->refcnt) <= 0); --- 19 unchanged lines hidden --- | 105 106/* 107 * temporary check to make sure we dont access rid, ip_id_count, tcp_ts, 108 * tcp_ts_stamp if no refcount is taken on inet_peer 109 */ 110static inline void inet_peer_refcheck(const struct inet_peer *p) 111{ 112 WARN_ON_ONCE(atomic_read(&p->refcnt) <= 0); --- 19 unchanged lines hidden --- |