Linux 6.9-rc5
[sfrench/cifs-2.6.git] / net / sunrpc / sunrpc.h
1 /* SPDX-License-Identifier: GPL-2.0-only */
2 /******************************************************************************
3
4 (c) 2008 NetApp.  All Rights Reserved.
5
6
7 ******************************************************************************/
8
9 /*
10  * Functions and macros used internally by RPC
11  */
12
13 #ifndef _NET_SUNRPC_SUNRPC_H
14 #define _NET_SUNRPC_SUNRPC_H
15
16 #include <linux/net.h>
17
18 /*
19  * Header for dynamically allocated rpc buffers.
20  */
21 struct rpc_buffer {
22         size_t  len;
23         char    data[];
24 };
25
26 static inline int sock_is_loopback(struct sock *sk)
27 {
28         struct dst_entry *dst;
29         int loopback = 0;
30         rcu_read_lock();
31         dst = rcu_dereference(sk->sk_dst_cache);
32         if (dst && dst->dev &&
33             (dst->dev->features & NETIF_F_LOOPBACK))
34                 loopback = 1;
35         rcu_read_unlock();
36         return loopback;
37 }
38
39 int rpc_clients_notifier_register(void);
40 void rpc_clients_notifier_unregister(void);
41 void auth_domain_cleanup(void);
42 #endif /* _NET_SUNRPC_SUNRPC_H */