@@ -273,33 +273,8 @@ static int inet6_create(struct net *net, struct socket *sock, int protocol,
273
273
goto out ;
274
274
}
275
275
276
-
277
- /* bind for INET6 API */
278
- int inet6_bind (struct socket * sock , struct sockaddr * uaddr , int addr_len )
279
- {
280
- struct sock * sk = sock -> sk ;
281
- int err = 0 ;
282
-
283
- /* If the socket has its own bind function then use it. */
284
- if (sk -> sk_prot -> bind )
285
- return sk -> sk_prot -> bind (sk , uaddr , addr_len );
286
-
287
- if (addr_len < SIN6_LEN_RFC2133 )
288
- return - EINVAL ;
289
-
290
- /* BPF prog is run before any checks are done so that if the prog
291
- * changes context in a wrong way it will be caught.
292
- */
293
- err = BPF_CGROUP_RUN_PROG_INET6_BIND (sk , uaddr );
294
- if (err )
295
- return err ;
296
-
297
- return __inet6_bind (sk , uaddr , addr_len , false, true);
298
- }
299
- EXPORT_SYMBOL (inet6_bind );
300
-
301
- int __inet6_bind (struct sock * sk , struct sockaddr * uaddr , int addr_len ,
302
- bool force_bind_address_no_port , bool with_lock )
276
+ static int __inet6_bind (struct sock * sk , struct sockaddr * uaddr , int addr_len ,
277
+ bool force_bind_address_no_port , bool with_lock )
303
278
{
304
279
struct sockaddr_in6 * addr = (struct sockaddr_in6 * )uaddr ;
305
280
struct inet_sock * inet = inet_sk (sk );
@@ -444,6 +419,30 @@ int __inet6_bind(struct sock *sk, struct sockaddr *uaddr, int addr_len,
444
419
goto out ;
445
420
}
446
421
422
+ /* bind for INET6 API */
423
+ int inet6_bind (struct socket * sock , struct sockaddr * uaddr , int addr_len )
424
+ {
425
+ struct sock * sk = sock -> sk ;
426
+ int err = 0 ;
427
+
428
+ /* If the socket has its own bind function then use it. */
429
+ if (sk -> sk_prot -> bind )
430
+ return sk -> sk_prot -> bind (sk , uaddr , addr_len );
431
+
432
+ if (addr_len < SIN6_LEN_RFC2133 )
433
+ return - EINVAL ;
434
+
435
+ /* BPF prog is run before any checks are done so that if the prog
436
+ * changes context in a wrong way it will be caught.
437
+ */
438
+ err = BPF_CGROUP_RUN_PROG_INET6_BIND (sk , uaddr );
439
+ if (err )
440
+ return err ;
441
+
442
+ return __inet6_bind (sk , uaddr , addr_len , false, true);
443
+ }
444
+ EXPORT_SYMBOL (inet6_bind );
445
+
447
446
int inet6_release (struct socket * sock )
448
447
{
449
448
struct sock * sk = sock -> sk ;
0 commit comments