Branch data Line data Source code
1 : : /****************************************************************************** 2 : : 3 : : (c) 2008 NetApp. All Rights Reserved. 4 : : 5 : : NetApp provides this source code under the GPL v2 License. 6 : : The GPL v2 license is available at 7 : : http://opensource.org/licenses/gpl-license.php. 8 : : 9 : : THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS 10 : : "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT 11 : : LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR 12 : : A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR 13 : : CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, 14 : : EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, 15 : : PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR 16 : : PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF 17 : : LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING 18 : : NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS 19 : : SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 20 : : 21 : : ******************************************************************************/ 22 : : 23 : : /* 24 : : * Functions and macros used internally by RPC 25 : : */ 26 : : 27 : : #ifndef _NET_SUNRPC_SUNRPC_H 28 : : #define _NET_SUNRPC_SUNRPC_H 29 : : 30 : : #include <linux/net.h> 31 : : 32 : : /* 33 : : * Header for dynamically allocated rpc buffers. 34 : : */ 35 : : struct rpc_buffer { 36 : : size_t len; 37 : : char data[]; 38 : : }; 39 : : 40 : 0 : static inline int sock_is_loopback(struct sock *sk) 41 : : { 42 : 0 : struct dst_entry *dst; 43 : 0 : int loopback = 0; 44 : 0 : rcu_read_lock(); 45 [ # # ]: 0 : dst = rcu_dereference(sk->sk_dst_cache); 46 [ # # # # ]: 0 : if (dst && dst->dev && 47 [ # # ]: 0 : (dst->dev->features & NETIF_F_LOOPBACK)) 48 : 0 : loopback = 1; 49 : 0 : rcu_read_unlock(); 50 : 0 : return loopback; 51 : : } 52 : : 53 : : int svc_send_common(struct socket *sock, struct xdr_buf *xdr, 54 : : struct page *headpage, unsigned long headoffset, 55 : : struct page *tailpage, unsigned long tailoffset); 56 : : 57 : : int rpc_clients_notifier_register(void); 58 : : void rpc_clients_notifier_unregister(void); 59 : : #endif /* _NET_SUNRPC_SUNRPC_H */