Skip to content

Commit d2dc8ea

Browse files
edumazetmehmetb0
authored andcommitted
inetpeer: remove create argument of inet_getpeer()
BugLink: https://bugs.launchpad.net/bugs/2111953 [ Upstream commit 7a596a5 ] All callers of inet_getpeer() want to create an inetpeer. Signed-off-by: Eric Dumazet <edumazet@google.com> Link: https://patch.msgid.link/20241215175629.1248773-3-edumazet@google.com Signed-off-by: Jakub Kicinski <kuba@kernel.org> Stable-dep-of: a853c60 ("inetpeer: do not get a refcount in inet_getpeer()") Signed-off-by: Sasha Levin <sashal@kernel.org> Signed-off-by: Manuel Diewald <manuel.diewald@canonical.com> Signed-off-by: Mehmet Basaran <mehmet.basaran@canonical.com>
1 parent d6db761 commit d2dc8ea

File tree

2 files changed

+5
-13
lines changed

2 files changed

+5
-13
lines changed

include/net/inetpeer.h

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -96,8 +96,7 @@ static inline struct in6_addr *inetpeer_get_addr_v6(struct inetpeer_addr *iaddr)
9696

9797
/* can be called with or without local BH being disabled */
9898
struct inet_peer *inet_getpeer(struct inet_peer_base *base,
99-
const struct inetpeer_addr *daddr,
100-
int create);
99+
const struct inetpeer_addr *daddr);
101100

102101
static inline struct inet_peer *inet_getpeer_v4(struct inet_peer_base *base,
103102
__be32 v4daddr,
@@ -108,7 +107,7 @@ static inline struct inet_peer *inet_getpeer_v4(struct inet_peer_base *base,
108107
daddr.a4.addr = v4daddr;
109108
daddr.a4.vif = vif;
110109
daddr.family = AF_INET;
111-
return inet_getpeer(base, &daddr, 1);
110+
return inet_getpeer(base, &daddr);
112111
}
113112

114113
static inline struct inet_peer *inet_getpeer_v6(struct inet_peer_base *base,
@@ -118,7 +117,7 @@ static inline struct inet_peer *inet_getpeer_v6(struct inet_peer_base *base,
118117

119118
daddr.a6 = *v6daddr;
120119
daddr.family = AF_INET6;
121-
return inet_getpeer(base, &daddr, 1);
120+
return inet_getpeer(base, &daddr);
122121
}
123122

124123
static inline int inetpeer_addr_cmp(const struct inetpeer_addr *a,

net/ipv4/inetpeer.c

Lines changed: 2 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -177,30 +177,23 @@ static void inet_peer_gc(struct inet_peer_base *base,
177177
}
178178

179179
struct inet_peer *inet_getpeer(struct inet_peer_base *base,
180-
const struct inetpeer_addr *daddr,
181-
int create)
180+
const struct inetpeer_addr *daddr)
182181
{
183182
struct inet_peer *p, *gc_stack[PEER_MAX_GC];
184183
struct rb_node **pp, *parent;
185184
unsigned int gc_cnt, seq;
186-
int invalidated;
187185

188186
/* Attempt a lockless lookup first.
189187
* Because of a concurrent writer, we might not find an existing entry.
190188
*/
191189
rcu_read_lock();
192190
seq = read_seqbegin(&base->lock);
193191
p = lookup(daddr, base, seq, NULL, &gc_cnt, &parent, &pp);
194-
invalidated = read_seqretry(&base->lock, seq);
195192
rcu_read_unlock();
196193

197194
if (p)
198195
return p;
199196

200-
/* If no writer did a change during our lookup, we can return early. */
201-
if (!create && !invalidated)
202-
return NULL;
203-
204197
/* retry an exact lookup, taking the lock before.
205198
* At least, nodes should be hot in our cache.
206199
*/
@@ -209,7 +202,7 @@ struct inet_peer *inet_getpeer(struct inet_peer_base *base,
209202

210203
gc_cnt = 0;
211204
p = lookup(daddr, base, seq, gc_stack, &gc_cnt, &parent, &pp);
212-
if (!p && create) {
205+
if (!p) {
213206
p = kmem_cache_alloc(peer_cachep, GFP_ATOMIC);
214207
if (p) {
215208
p->daddr = *daddr;

0 commit comments

Comments
 (0)